scrapy xpath选择器多级选择错误
Posted cdcc1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scrapy xpath选择器多级选择错误相关的知识,希望对你有一定的参考价值。
在学习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])
以上是关于scrapy xpath选择器多级选择错误的主要内容,如果未能解决你的问题,请参考以下文章
Python中Scrapy框架元素选择器XPath的简单实例
初始scrapy,简单项目创建和CSS选择器,xpath选择器
在Scrapy中如何利用Xpath选择器从HTML中提取目标信息(两种方式)