JavaScript使Python的Selenium陷入困境
因此,我想创建一个使用JavaScript/AJAX在向下滚动页面时生成额外结果的网站。我使用的是Python3.7,SeleniumChrome无头运行。然而,随着刮削的进行,最终会产生越来越多的代码,这会降低我的机器的速度,直到它停止。即使是简单的操作,如——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
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浏览器中执行此操作,进入“网络”选项卡,查看在使用网站时发送的请求。