Python 使用XPath提取数据
我想使用XPath提取网页中的数据,但什么也得不到,如何提取数据 我尝试使用下面的代码,但它们没有返回任何结果 我试着用Python 使用XPath提取数据,python,xpath,scrapy,Python,Xpath,Scrapy,我想使用XPath提取网页中的数据,但什么也得不到,如何提取数据 我尝试使用下面的代码,但它们没有返回任何结果 我试着用 house.xpath('.//span[@class = "icon icon-pin"]/text()').extract_first() and house.xpath('.//span[@class = "ann info-item"]/text()').extract_first() 但我什么也得不到 下面是我要提取的代码: <span class =
house.xpath('.//span[@class = "icon icon-pin"]/text()').extract_first()
and
house.xpath('.//span[@class = "ann info-item"]/text()').extract_first()
但我什么也得不到
下面是我要提取的代码:
<span class = "ann-info-item">
<span class = "icon icon-pin">
::before
</span>
" San Jorge "
</span>
我想提取San Jorge,但什么也得不到。您应该选择内部span,然后获取以下文本,这样表达式将类似于house.xpath'.//span[@class=icon-icon-pin]/following-sibling::text'.get 在shell中,我可以通过以下方式获取数据:
>>> from scrapy import Selector
>>> txt = """<span class = "ann-info-item">
... <span class = "icon icon-pin">
... ::before
... </span>
... " San Jorge "
... </span>"""
>>> sel = Selector(text=txt)
>>> sel.xpath('//span[@class="icon icon-pin"]/following- sibling::text()').get()
u'\n " San Jorge "\n '
>>> sel.xpath('//span[@class="icon icon-pin"]/following-sibling::text()').get().strip()
u'" San Jorge "'
请尝试以下操作:
.//span[@class = "ann-info-item"]/text()[2]
看起来您在第二个xpath查询中删除了一个“-”。此外,amn信息项分类范围有两个文本节点。使用[2]将获得第二个。谢谢!非常有用。你能解释一下为什么下面的兄弟::文本有效吗?我的意思是,我明白孩子不是兄弟姐妹吗?再次检查,我们有一个ann信息项父项,里面有两个对象:span图标pin和文本。看看结束标记。文本位于内部跨距之后。因此,我们在这里使用以下同级选择器。