就像标题所说,Scrapy中有更好的替代XPath选择器可以用来轻松选择html中的数据吗?我发现XPath具有很高的学习曲线,其语法有些难以使用。我觉得如果jQuery选择器可以在Scrapy中使用或合并,它可以让生活更轻松。
答案 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,因为它非常强大和灵活,并且现在很多提取工具都支持它,它是事实上的标准。