编写xpath选择器的最佳实践

时间:2014-11-17 05:06:16

标签: python xml xpath scrapy

我开始学习xpath和python scrapy。到目前为止,我已经学习了这两个基础知识。但是现在我需要知道如何定义高效的xpath选择器以及scrapy和xpath中的一些最佳实践。是否有任何好的Web资源可以帮助我?

1 个答案:

答案 0 :(得分:2)

尽管问题太广泛,我仍然会在这里留下一点。

Scrapy拥有自己的解析HTML和提取数据的机制,但这种机制完全基于lxml库,引自documentation page

  

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

     

Scrapy选择器是在lxml库上构建的,这意味着它们是   速度和解析精度非常相似。

lxml本身以其卓越的性能而着称,您可以在此处找到详细信息和基准:


关于编写xpath表达式的最佳实践," gold"规则是尝试尽可能少地搜索整个根树,引自lxml docs

  

通常在树遍历中花费大量时间来寻找所解决的问题   树中的元素。如果你经常在子树上工作,那就去做吧   也可以使用深层Python对象:将子树的父级分配给   变量或将其传递给函数而不是从根开始。   这样可以更直接地访问其后代。


但是,请确保您知道瓶颈在哪里。我怀疑它是否真的存在于Scrapy使用的xpath引擎中,或者因为你编写xpath表达式的方式。 Do not optimize prematurely,衡量!