V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
kaishui00
V2EX  ›  Python

Seleium+chromedriver 怎么解决内存问题

  •  
  •   kaishui00 · 2019-09-24 16:12:06 +08:00 · 2957 次点击
    这是一个创建于 1921 天前的主题,其中的信息可能已经有所发展或是发生改变。

    长时间爬取(三百次)左右,就出现内存不足,浏览器崩溃。有什么好的办法吗?

    8 条回复    2019-09-25 22:54:31 +08:00
    weakiwi
        1
    weakiwi  
       2019-09-24 16:48:41 +08:00
    试试 selenoid ?或者直接用 chromecdp
    ml1344677
        2
    ml1344677  
       2019-09-24 16:50:11 +08:00
    300 次是 300 次访问? 用了无头模式吗 加载了图片吗 完全不清楚你是什么情况
    arrow8899
        3
    arrow8899  
       2019-09-24 17:03:08 +08:00
    开了 300 个 tab 吗,你是不是忘记关闭页面了
    Leigg
        4
    Leigg  
       2019-09-24 17:05:38 +08:00 via Android
    得关了重启。
    Leigg
        5
    Leigg  
       2019-09-24 17:06:17 +08:00 via Android
    遇到过,没查到什么原因。只能在定时重启。
    kaishui00
        6
    kaishui00  
    OP
       2019-09-25 11:52:57 +08:00
    @ml1344677
    @arrow8899

    无头模式,一个标签,300 次访问,加载图片了,因为用到验证码
    ClericPy
        7
    ClericPy  
       2019-09-25 22:53:00 +08:00
    这问题貌似已经很多年了, 官方 issue 没说什么吗
    之前也是各种内存爆裂的问题才试了各种 driver, 后来还试过一个叫 ghost.py 的坑, 最后不得不硬撸 cdp 了, 反正一共就那么几个请求, 也没必要上 puppteer 或者 pyppteer
    ClericPy
        8
    ClericPy  
       2019-09-25 22:54:31 +08:00
    我自己调试 cdp 的时候倒是发现经常有 close tab 失败的情况, 或者杀子进程没关 fd 之类的小问题导致僵尸进程吃内存

    你一个标签, 是打开一个又关上吗, 我记得 Chrome 既有关闭最近打开的功能, 默认的 history 深度又很高... 不确定你到底什么坑
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2717 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:54 · PVG 13:54 · LAX 21:54 · JFK 00:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.