在Scrapy中有更好的替代XPath选择器吗?

时间:2014-12-17 15:33:18

标签: jquery xpath web-scraping scrapy

就像标题所说,Scrapy中有更好的替代XPath选择器可以用来轻松选择html中的数据吗?我发现XPath具有很高的学习曲线,其语法有些难以使用。我觉得如果jQuery选择器可以在Scrapy中使用或合并,它可以让生活更轻松。

2 个答案:

答案 0 :(得分:1)

Scrapy supports CSS selectors

  

Scrapy带有自己的提取数据机制。他们是   称为选择器,因为它们“选择”HTML的某些部分   由XPath或CSS表达式指定的文档。

示例:

$ scrapy shell https://stackoverflow.com
>>> response.css('title::text').extract()
[u'Stack Overflow']

FYI

  

在后台,CSS查询被转换为使用的XPath查询   cssselect库并运行.xpath()方法。

答案 1 :(得分:1)

Scrapy选择器是在lxml库上构建的,但您可以使用您喜欢的任何机制。

XPath选择器外,scrapy还支持CSS选择器:

response.css('my_css_selector_expression')

您可以在此处找到CSS选择器参考:
http://www.w3schools.com/cssref/css_selectors.asp

也支持正则表达式:

response.selector.re('my_regex')

那就是说,我建议你咬掉它并学习XPath,因为它非常强大和灵活,并且现在很多提取工具都支持它,它是事实上的标准。