【python爬虫-碎碎念】chorme的无头浏览器(headless模式)慢很多怎么办

编程入门 行业动态 更新时间:2024-10-24 08:19:17

大无语事件!
我用selenium写爬虫( Python 3.8.7  +  selenium 3.141.0 + chorme  88.0.4324.104 + 对应版本的chromedriver)。
因为我的项目用chorme的适配性和后续扩展性更好,所以我一直用chormedriver写和调试。

但是我发现,我用chormedriver的可视化模式,运行速度约8秒/次,但是如果用chorme的headless模式慢很多,运行速度约20秒/次。
差不多是3倍的时间啊,完全想不通多了的这十几秒是从哪多出来的。
说好的用无头浏览器会节约三分之一至三分之二的时间呢!想不通为什么和教程说的不一样。

查了很久,相关资料很少,也没找到解决方法。我遇到的情况和这位老哥描述的情况: python selenium 静默模式非常的慢---系统或电脑问题 很像,但他认为是"系统或电脑本身的原因",也没给出更有效的解决方法。
我以为是我代码写得太烂,于是试下把代码里的等待全都改成显式等待,还是没用,chorme的无头浏览器的运行速度毫无变化。
最后的解决方法是:换火狐的driver
换上火狐,无头模式和可视化模式的运行速度几乎一样。虽然无头也没更快,但起码勉强能用了。行叭……先就这样吧。
所以,不是系统或电脑本身的原因,是chormedriver的原因,具体原因我不知道,我也想知道。
这也太玄学了吧,非常无语……

 


2021.02.04更新:
一波未平一波又起……
我司电脑另一个古早系统(不是项目要爬的这个网站)只能用火狐33.0.2,不兼容更高的版本。
但geckodirver似乎只支持火狐47以上,再低的版本感觉很难很难搞了。
只能想办法在电脑里并存两个版本火狐了。
折中地搞了U盘便携版火狐57 (参考:如何制作便携版 FireFox 火狐浏览器),然后用firefox_binary指定U盘便携版火狐所在的地址。
暂时只想到这样了,先实现了以后再说。
做下笔记。代码如下:

from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

options = Options()
options.add_argument("-headless")  #设置为无头模式
firefoxdirver_path = 'geckodriver.exe'  # firefoxdriver所在地址
firefox_bin = r"Firefox_Portable\firefox.exe" # U盘版firefox浏览器所在地址
driver.Firefox( options=options, executable_path=firefoxdirver_path, firefox_binary=FirefoxBinary(firefox_bin ))

热烈欢迎留下评论,一起讨论,唠一唠嗑~

更多推荐

【python爬虫-碎碎念】chorme的无头浏览器(headless模式)慢很多怎么办

本文发布于:2023-06-14 07:39:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1451927.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:爬虫   碎碎   无头   浏览器   模式

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!