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

python 专栏收录该内容
4 篇文章 0 订阅

大无语事件!
我用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 ))

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

  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值