惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
B
Blog RSS Feed
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
Hugging Face - Blog
Hugging Face - Blog
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
B
Blog
小众软件
小众软件
T
Tailwind CSS Blog
MyScale Blog
MyScale Blog
I
InfoQ
Engineering at Meta
Engineering at Meta
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
H
Help Net Security
雷峰网
雷峰网
S
SegmentFault 最新的问题
V
Visual Studio Blog
爱范儿
爱范儿

老董笔记

尚硅谷机构在哪?尚硅谷培训怎么样?靠谱吗-互联网IT百科 韩顺平介绍,传智讲师,开办泰牛,入尚硅谷等一系列-互联网IT百科 pandas多重索引标准样式(写入excel有空行)-互联网IT百科 cannot join with no overlapping index names-互联网IT百科 pandas多列变多行(即宽表变长表)melt和stack函数-互联网IT百科 pandas多行转多列(长表变宽表)pivot和unstack-互联网IT百科 Index contains duplicate entries, cannot reshape完美解决-互联网IT百科 single positional indexer is out-of-bounds-互联网IT百科 Can only compare identically-labeled Series objects-互联网IT百科 pandas transform用法详解(多个案例)-互联网IT百科 python四舍五入精确实现-互联网IT百科 pandas的groupby使用apply分组排序-互联网IT百科 index 0 is out of bounds for axis 0 with size 0-互联网IT百科 pandas分组过滤filter函数-互联网IT百科 联想Win10系统如何禁用触摸屏关闭触摸-互联网IT百科 groupby分组计算transform转换返回相同长度序列-互联网IT百科 brooks seo教程python教程,brooks seo教程网盘,布鲁seo资源-互联网IT百科 电脑右键文件夹一直转圈电卡死怎么回事-互联网IT百科 施琪嘉的心理成长课(荐)-互联网IT百科 百度SEO公司_SEO推广公司哪家好_SEO外包服务如何选-老董笔记 groupby后agg同1列用多个聚合函数、不同列用不同函数、自定义函数-互联网IT百科 pandas的groupby单列多列分组聚合运算-互联网IT百科 DataFrameGroupBy对象及分组个数、分组大小、组名索引、组数据详解-互联网IT百科 pandas中groupby之Grouper and axis must be same length-互联网IT百科 pandas中groupby的分组原理-互联网IT百科 pandas的groupby的使用详解大全-互联网IT百科 openpyxl单元格自动换行强制换行Alignment(wrapText=True)-互联网IT百科 python教程全套(可就业)-互联网IT百科 联想win10系统CPU显示100%,电脑呼呼响怎么回事-互联网IT百科 如何自制CPU,CPU原理是怎么样的?-互联网IT百科
selenium谷歌浏览器崩溃out of memory彻底解决-互联网IT百科
2021-08-14 · via 老董笔记

  做web自动化或者抓取一些加密的网站数据,有能力的同学可以自己封装个浏览器。不会的同学就借助chromedriver驱动浏览器并且忍受着他的各种大坑,关于selenium的坑和bug可以参考selenium坑大全

  无论是selenium操作谷歌浏览器还是node.js驱动谷歌浏览器都会遇到 喔唷,崩溃啦 这个画面,如果没有遇到说明操作的不够多。

  网上各种帖子都是让删除cookie、删除缓存、用无痕模式启动、或者增加一些启动参数配置;经过测试这些都没有毛用。这个问题的本质原因是谷歌浏览器内存回收问题。

  一、代码逻辑层面的解决

  1、尽量把脚本各种可能异常(非崩溃卡死的异常)放在其他函数里面捕获。

  2、在主函数里面再加try except语句来捕获异常,一旦有异常就直接driver.quit() 然后重启一个driver。(执行driver.quit()后,浏览器和chromedriver进程不会立刻从内存消失,为了避免内存浪费可以附加1个杀死当前脚本chromedriver进程的命令)

  大部分情况下上面这种逻辑是可以走通的不会出问题。但是某些场景会发生浏览器卡死崩溃着,脚本没有抛异常。

  二 、定时重启

  要想彻底解决这个问题就可以采用定时重启。可以单独写1个control.py脚本,里面用定时任务模块让功能脚本每隔30分钟重启一次。但是需要留意2个问题。

  1、这种方式需要额外增加一些逻辑,以关键词排名查询的爬虫脚本为例,每次重启之前需要先去重那些已经抓取过的词,确保重启脚本后从剩余的词开始,每个人去重的实现方式不同,各自发挥把。

  2、可以直接通杀chromedriver及浏览器进程来实现重启(也可以靠driver.service.process.pid属性来精准杀死chromedriver进程),杀死进程会在C盘临时文件夹下生成一些文件,记得删除下这些文件,否则说不定哪天C盘就满了。

  三 、1个简单富有技巧的方式解决

  上面2种方法就够用了,我用了一段时间定时重启后突然灵感一发想到了1个其他方法,不需要重启,不需要对浏览器做什么配置即可解决。该方法比较有技巧性。愿意了解的加我并打赏一桶泡面+一根肠我告诉你(拒绝白嫖!世俗之人,拿钱开路)

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会