WebDriverException: Message: unknown error: Chrome failed to start: crashed

1. 背景
在使用selenium + chrome浏览器渲染模式爬取数据时,如果并发任务过多,或者爬虫的运行时间很长,那么很容易出现浏览器崩溃的现象,如下:

这一般是资源消耗过大造成的(据说chrome浏览器有内存泄漏的情况)。那如何解决这个问题呢?

这种情况下,我们首先就会想到使用无界面的浏览器PhantomJS,但是PhantomJS现在年久失修,后继无人,对很多新的特性支持并不够好。不过好在Google今年在chrome中增加了一项新的特性: Headless mode ,这样我们就可以使用无界面的chrome来爬取数据了,占用资源更少,速度更快。而且可喜的是,google的团队承诺会一直维护它…
2. 环境
系统:win10
python 3.6.5
IDE:jupyter notebook
安装过chrome浏览器( 75.0.3770.100(正式版本) 64 位)
selenium 3.7.0
配置好ChromeDriver v2.46

注意:

因为Headless mode 是新推出的特性,只有高级的版本才能使用,并不向前兼容,所以对chrome浏览器和chromedriver的版本有要求:
1. 对chrome浏览器来说:
linux,unix系统需要 chrome浏览器 >= 59
Windows系统需要 chrome浏览器 >= 60
2. chromeDriver版本与chrome浏览器匹配:
这个部分参考文章:https://www.cnblogs.com/gaofighting/p/10757013.html

代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keyschrome_options = webdriver.ChromeOptions()
# 使用headless无界面浏览器模式
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')# 启动浏览器,获取网页源代码
browser = webdriver.Chrome(options=chrome_options)
mainUrl = "https://www.taobao.com/"
browser.get(mainUrl)
print(f"browser text = {browser.page_source}")browser.get_screenshot_as_file("test.png")#获取截图
browser.quit()

转载于:https://www.cnblogs.com/gaofighting/p/11172956.html

chrome浏览器爬虫WebDriverException解决采用python + selenium + chrome + headless模式相关推荐

  1. 12306 抢票 python + selenium + chrome (二) 基础准备的软件和材料

    我使用的 vmware 14 + ubuntu 16  +  PyCharm  开发环境 12306抢票 python+selenium+chrome 实现一 12306抢票 python+selen ...

  2. python+selenium+chrome 做滑动验证码 会被浏览器检测到使用的自动软件导致滑动验证失败

    python+selenium+chrome 做滑动验证码 会被浏览器检测到使用的自动软件导致滑动验证失败 解决方法:代码中添加: import time from selenium import w ...

  3. Python + Selenium + Chrome 使用代理 auth 的用户名密码授权

    2019独角兽企业重金招聘Python工程师标准>>> 米扑代理,全球领导的代理品牌,专注代理行业近十年,提供开放.私密.独享代理,并可免费试用 米扑代理官网:https://pro ...

  4. python+selenium+chrome实现淘宝购物车秒杀自动结算

    python+selenium+chrome实现淘宝购物车秒杀自动结算 一.所需环境 二.安装 三.代码 最后run()一把就ok了!! 之前总是想要买aj,但是淘宝店铺每次发售手动抢的时候一般都会被 ...

  5. Python + Selenium + Chrome Driver 自动化点击+评论+刷弹幕(仅供学习)

    Python + Selenium + Chrome Driver 自动化点击 评论 刷弹幕 首先说明,这篇博文仅供学习!仅供学习!仅供学习! 不要拿去做其他事,封号概不负责!!! 突发奇想 首先先说 ...

  6. python + selenium +chrome爬取qq空间好友说说并存入mongodb数据库

    python + selenium +chrome爬取qq空间好友说说并存入mongodb数据库 准备阶段 在正式开始在前需要先准备好做爬虫的工具,本例使用chrome无头浏览器进行爬取工作,也可使用 ...

  7. Linux服务器上搭建Python+Selenium+Chrome的运行环境(静默模式、无图形)

    本文是<统计CSDN博客的访问量>的部署篇,为了持续统计CSDN的访问量.并进行分析,因此需要在Linux上搭建Selenium + Chrome driver的运行环境 安装Seleni ...

  8. Python selenium chrome 环境配置

    Python selenium chrome 环境配置一.参考文章:1. 记录一下python easy_install和pip安装地址和方法http://heipark.iteye.com/blog ...

  9. 在Docker中使用Python Selenium和Headless Chrome进行网站自动化测试的方法

    by Joyz 通过乔伊斯 在Docker中使用Python Selenium和Headless Chrome进行网站自动化测试的方法 (A recipe for website automated ...

  10. Python - Selenium Chrome 模拟手机

    Python - Selenium Chrome 模拟手机 Max.Bai 2017-04 Chrome浏览器支持移动端调试,当然ChromeDriver也支持移动端测试了. 使用python调用We ...

最新文章

  1. 关于自动寻径和图、邻接表的学习和启发
  2. C#EF中,使用类似于SQL中的% 模糊查询
  3. java quartz2.1_quartz 2.1学习(一)
  4. 在线可视化python网站_Python的可视化工具概述
  5. chrome下老是弹出网页显示 true
  6. 102份深圳炒房材料曝光 网友举报千人炒房大会
  7. 《微信公众平台入门到精通》,青龙老贼,详情版本
  8. Matt Speake
  9. 全文搜索之 Elasticsearch
  10. 网站被k的症状原因有哪些-怎么恢复
  11. Ubuntu12.04增加屏幕分辨率选项
  12. Atitit 艾提拉音频资源列表与统计 t6 六月份战果与7月份规划.docx 目录 1. 第一层次 原始资源类 采集资源类 1 1.1. K歌类采集资源 整理 1 1.2. K歌类资源初步分类
  13. 程序员必读的10本经典书(含资源)建议收藏
  14. 网银爬虫系统(爬取网银流水,爬取网银余额)难点分析
  15. js下载activex
  16. Unexpected bus error encountered in worker. This might be caused by insufficient shared memory(shm)
  17. LOL开发者谈网游自动化测试:每天10万次
  18. 2021-05-29 DOM元素的属性和操作:节点非内置属性,节点增删改查,cssDOM设置行内样式与非行内样式等
  19. Android仿微信发图片的样式,做IM的同学的病有救了
  20. Java定时任务的实现

热门文章

  1. 【树状数组】【P3608】平衡的照片
  2. RIA 应用程序模式
  3. 《电路分析导论(原书第12版)》一3.14 压控电阻
  4. CentOS 6.7安装Spark 1.5.2
  5. 创建Maven web工程不能解析EL表达式的解决办法
  6. 某中介无线组网及***接入应用案例
  7. Java中集合list的add方法添加的不是值COPY而是地址
  8. html5 aria,html - What is HTML5 ARIA? - Stack Overflow
  9. libcurl学习及简易封装类
  10. python 调用 c 生成数组_使用C类型如何将数组从C++函数返回到Python