在學習scrapy中用xpath提取網頁內容時,有時要先提取出一整個行標籤內容,再從行標籤裡尋找目標內容。出現乙個錯誤。
錯誤**:
defparse(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])
結果:
大嘴巴第二季大嘴巴第二季
大嘴巴第二季
大嘴巴第二季
大嘴巴第二季
大嘴巴第二季
...
提取到的內容都是第乙個下的後續內容
修稿後**:
defparse(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內路徑前加.表示從當前查詢,之後後續內容正常得到
其他方法:
defparse(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...