我一直在使用scrapy进行10-15个项目,并尝试使用scrapy的解析器和具有scrapy的lxml解析器。
我想找出哪一个是可以在python中使用的最佳解析器(就解析速度而言)。
我试图通过测试它们在电子商务网站上刮取某个类别的产品名称来比较它们的效果。但不知道速度。 1.我用lxml解析scrapy内部 2.我使用了scrapy的内置解析器
答案 0 :(得分:1)
这是lxml库的moto所说的
已知c中的”使用libxml2进行编程就像是一个陌生的陌生人的激动拥抱。它似乎有可能实现您最疯狂的梦想,但是您的头顶上有些刺耳的声音警告您,您将陷入困境。最糟糕的方法。” (Mark Pilgrim的话) Mark Pilgrim特别描述了Python程序员处理libxml2时的经验。 libxml2的默认Python绑定快速,刺激,强大,并且您的代码可能会以某种可怕的方式失败,您在编写Python代码时不必担心。 lxml将libxml2的功能与Python的易用性相结合。
Lib2xml是最快的解析器。
结果发现scrapy使用了parsel库,该库是lxml的包装。
从草率的documentation
Scrapy Selectors是Parsel库周围的薄包装;该包装器的目的是提供与Scrapy Response对象更好的集成。
parsel是一个独立的Web抓取库,无需Scrapy即可使用。它在后台使用lxml库,并在lxml API之上实现了一个简单的API。这意味着Scrapy选择器的速度和解析精度与lxml非常相似。
所以我想我应该使用scrapy的选择器,因为这样会更容易。