抓取特定数据

时间:2019-08-05 19:01:23

标签: scrapy

我在使用scrapy提取一组特定数据时遇到问题。

这是我要提取的示例代码。

<div class="Person">
      <span>Name:</span>
     Jason
     <span>Last Name:</span>
     Terry
</div

我只想提取“特里”。

我知道如何通过索引在div类中进行搜索来获取“ Terry”,但是问题是索引号是硬编码的,当您进入下一页时,其他人的“姓氏”可能不会在同一索引中。

因此,我没有尝试搜索索引,而是尝试搜索包含“姓氏”的跨度,但是每次这样做,我都会得到整个内容的返回。

我的意思是

杰森 特里

但是我只想要'Terry'

2 个答案:

答案 0 :(得分:1)

您尝试过这个xpath吗? //span[contains(.,'Last Name')]/following-sibling::text()应该在span元素之后返回包含Last Name文本的文本

from scrapy.selector import Selector

html_text = """<div class="Person">\n      <span>Name:</span>\n     Jason\n     <span>Last Name:</span>\n     Terry\n</div>"""

Selector(text=html_text).xpath("//span[contains(.,'Last Name')]/following-sibling::text()").get()

结果:

u'\n     Terry\n'

答案 1 :(得分:0)

您可以显示您的代码吗 并尝试使用此xpath:

response.xpath('//*[@class="Person"]/text()').extract()[2]