scrapy xpath選擇器多級選擇錯誤

2022-07-17 00:57:14 字數 1313 閱讀 4182

在學習scrapy中用xpath提取網頁內容時,有時要先提取出一整個行標籤內容,再從行標籤裡尋找目標內容。出現乙個錯誤。

錯誤**:

def

parse(self, response):

sel =scrapy.selector(response)

sel_li = sel.xpath('

/html/body/div[2]/div[5]/div[1]/ul/li')

for i in

sel_li:

print(i.xpath('

//h5/a/text()

').extract()[0])

結果:

大嘴巴第二季

大嘴巴第二季

大嘴巴第二季

大嘴巴第二季

大嘴巴第二季

大嘴巴第二季

...

提取到的內容都是第乙個下的後續內容

修稿後**:

def

parse(self, response):

sel =scrapy.selector(response)

sel_li = sel.xpath('

/html/body/div[2]/div[5]/div[1]/ul/li')

for i in

sel_li:

print(i.xpath('

.//h5/a/text()

').extract()[0])

結果:

大嘴巴第二季

新百戰天龍第三季

丹麥淫妖第一季

糟糕歷史第七季

無恥之徒第九季

...

在子xpath內路徑前加.表示從當前查詢,之後後續內容正常得到

其他方法:

def

parse(self, response):

sel =scrapy.selector(response)

sel_li = sel.xpath('

/html/body/div[2]/div[5]/div[1]/ul/li')

for i in

sel_li.extract():

print(scrapy.selector(text=i).xpath('

//h5/a/text()

').extract()[0])

print(scrapy.selector(text=i).xpath('

.//h5/a/text()

').extract()[0])

CSS 多類選擇器

在上一節中,我們處理了 class 值中包含乙個詞的情況。在 html 中,乙個 class 值中可能包含乙個詞列表,各個詞之間用空格分隔。例如,如果希望將乙個特定的元素同時標記為重要 important 和警告 warning 就可以寫作 class important warning this ...

CSS 多類選擇器

寫的 多了,就會發現,自己越來越無知了,總以為html css很簡單,已經掌握的很熟練了,其實我還差的很多。平時沒有用過css的這種寫法.a.b上網一查才明白。參考 1 在 html 中,乙個 class 值中可能包含乙個詞列表,各個詞之間用空格分隔。例如,如果希望將乙個特定的元素同時標記為重要 i...

CSS 多類選擇器

寫的 多了,就會發現,自己越來越無知了,總以為html css很簡單,已經掌握的很熟練了,其實我還差的很多。平時沒有用過css的這種寫法.a.b上網一查才明白。參考 1 在 html 中,乙個 class 值中可能包含乙個詞列表,各個詞之間用空格分隔。例如,如果希望將乙個特定的元素同時標記為重要 i...