Python 哪一种解析速度更快:Scrapy还是Selenium?

Python 哪一种解析速度更快:Scrapy还是Selenium?,python,selenium,scrapy,Python,Selenium,Scrapy,免责声明:我知道当必须使用web驱动程序检索动态生成的内容时,显然会有开销,但这个问题是关于每种语言的解析能力。如果你要否决我的问题,如果你能留下解释就好了 简单的问题:使用一个框架进行解析是否比使用另一个框架更有效 将动态内容传输到Scrapy进行解析 硒解析 当解析效率提高时,一种语言是否比另一种更有效?或者,Selenium检索到动态内容后,差异是否无关紧要 我提出这个问题的一个原因是,我发现Scrapy更易于使用——语法更为出色——因此,如果Scrapy不会或不会显著影响我的爬行器的效率

免责声明:我知道当必须使用web驱动程序检索动态生成的内容时,显然会有开销,但这个问题是关于每种语言的解析能力。如果你要否决我的问题,如果你能留下解释就好了

简单的问题:使用一个框架进行解析是否比使用另一个框架更有效

将动态内容传输到Scrapy进行解析

硒解析

当解析效率提高时,一种语言是否比另一种更有效?或者,Selenium检索到动态内容后,差异是否无关紧要


我提出这个问题的一个原因是,我发现Scrapy更易于使用——语法更为出色——因此,如果Scrapy不会或不会显著影响我的爬行器的效率,我肯定会通过page_源代码进行解析。

首先,这是一个苹果对橙色的比较。Scrapy解析只是客户端的内存解析,而selenium是一个浏览器控件,它可以控制实际呈现的dom html,当然,在这种情况下,它要比Scrapy慢得多

问题是加载JS/CSS/Images的速度要比只解析主html文件的慢得多。当你这样做的时候

whatever = response.xpath('//whatever')
您没有开销,它只是在内存中的html文档上运行xpath。当你这样做的时候

whatever = browser.find_elements_by_xpath('//whatever')
这是JSON RPC命令,因此

          http                http/socket 
your code ----> browser agent ------------> browser

这有很高的开销。而且浏览器总是比下载html并解析它慢

我明白这一点。嗯,我不知道Selenium必须执行其所有选择器命令,即browser.find_elements_by_xpath,以浏览器作为中间人。那么,如果一个人从一个页面上抓取了相当多的数据,那么将页面源传输到Scrapy,然后用Scrapy进行解析不是更快吗?!是的,当然是这样,但是只有当一页的数据量很高,并且要刮取的数据是巨大的多页时,才会有回报。我将刮取成吨的页面,并且有相当多的数据。。。不过,您谈论的是多少刮取和多少数据?表需要很多时间,所以10x10表是100个http调用。因此,任何时候超过10-15个字段,我都会检查时间上的差异,并使用callit而不是table元素,即使内容的格式有点像table。基本上就是一堆卡片,每一张卡片上都有很多信息,行和列!让我知道你的测试结果是什么!
whatever = response.xpath('//whatever')
whatever = browser.find_elements_by_xpath('//whatever')
          http                http/socket 
your code ----> browser agent ------------> browser