Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript使Python的Selenium陷入困境_Javascript_Python_Ajax_Selenium_Web Scraping - Fatal编程技术网

JavaScript使Python的Selenium陷入困境

JavaScript使Python的Selenium陷入困境,javascript,python,ajax,selenium,web-scraping,Javascript,Python,Ajax,Selenium,Web Scraping,因此,我想创建一个使用JavaScript/AJAX在向下滚动页面时生成额外结果的网站。我使用的是Python3.7,SeleniumChrome无头运行。然而,随着刮削的进行,最终会产生越来越多的代码,这会降低我的机器的速度,直到它停止。即使是简单的操作,如—— code = driver.page_source –增长到几秒钟。我运行了一个测试,看看代码库增长了多少,在几百个结果之后,它从最初的大约50万个字符扩展到2500万个字符——50倍!我的问题是: 1是否有类似于在Chrome的i

因此,我想创建一个使用JavaScript/AJAX在向下滚动页面时生成额外结果的网站。我使用的是Python3.7,SeleniumChrome无头运行。然而,随着刮削的进行,最终会产生越来越多的代码,这会降低我的机器的速度,直到它停止。即使是简单的操作,如——

code = driver.page_source
–增长到几秒钟。我运行了一个测试,看看代码库增长了多少,在几百个结果之后,它从最初的大约50万个字符扩展到2500万个字符——50倍!我的问题是:

1是否有类似于在Chrome的inspect element模式下删除代码的方法让Selenium删除之前的代码,以保持大小可控


2或者我忽略了其他一些简单的解决方案吗?

一个建议是查看正在运行的javascript,并在python中执行类似的操作,而不是简单地依赖selenium

我不知道你在做什么网站,但听起来像是在做一系列AJAX调用,加载另一个页面&另一个页面的结果图片/帖子/什么的

对JS进行反向工程——它可能一遍又一遍地执行相同的AJAX调用,传入一两个参数。弄清楚JS是如何计算传入参数的,它是时间戳,还是接收到的最后一个元素的ID,等等

然后,不要让selenium来完成这项工作,而是使用python请求,完成等效的POST。检索可能是json或html的数据,根据需要解析它&然后重复


根据您正在查看的站点,这可能会快几个数量级。

您首先需要使用硒吗?如果您可以发送页面上JavaScript发送的相同或类似的请求,那么您可以首先跳过所有DOM处理,这应该要快几个数量级。您知道是否有教程解释这些过程是如何工作的吗?我精通Python,但刚刚开始学习JavaScript。几乎可以肯定,根本不需要使用JavaScript做任何事情。只需打开您喜爱的web浏览器的开发者工具栏,按F12键即可在大多数web浏览器中执行此操作,进入“网络”选项卡,查看在使用网站时发送的请求。