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
Nick2VIPUser
V2EX  ›  Python

关于 Python 使用 puppeteer 无头模式遇到的 bug,求解.

  •  
  •   Nick2VIPUser ·
    nickliqian · 2019-02-02 18:01:51 +08:00 · 3381 次点击
    这是一个创建于 2152 天前的主题,其中的信息可能已经有所发展或是发生改变。

    系统: ubuntu 16.04
    各依赖版本如下:

    • puppeteer: 1.11.0
    • python: 3.6.2
    • chrome: 609904
    • pyppeteer: 0.0.25

    需求: 使用 python 控制 chrome 访问页面 A,并一直点击页面 A 上的下一页按钮,同时获取每一页数据

    利益相关:原始代码暂时不方便发出来

    bug: 在有界面模式下,可以正常的翻页并且获取每一页的数据,直到最后一页(6000 页). 但是, 在无头模式下,翻页到 28 页的时候,会报错 Navigation Timeout Exceeded: 3000 ms exceeded, 我捕获了这个错误,然后重新 click 和 waitforNavigation, 然后程序就一直停在这里了.

    尝试过:

    • 搜索 github issue 和 google 找一些答案, 没有能找到可以有效解决问题的答案.
    • 经过 pycharm 调试,也没有能找到有价值的信息.(对异步也不熟悉)

    主要想问:是否有大佬遇到在无头模式超时并程序假死的情况?

    大过年的, 谢谢各位啦.

    第 1 条附言  ·  2019-02-15 16:30:40 +08:00

    在github上提了一个issue,大佬们有熟悉的可以瞅一眼,非常感谢了!
    困扰了半个月了。
    https://github.com/miyakogi/pyppeteer/issues/201

    5 条回复    2021-09-17 09:19:46 +08:00
    danc
        1
    danc  
       2019-02-02 20:10:39 +08:00 via Android   ❤️ 1
    无头模式,要等待页面加载出来,再 click 嘛。有头模式,会阻塞住直到页面渲染完了才能 click。
    Nick2VIPUser
        2
    Nick2VIPUser  
    OP
       2019-02-02 21:18:56 +08:00
    @danc 不管是不是无头,应该都是要自己捕获相关元素加载出来才能继续动作吧?
    tikazyq
        3
    tikazyq  
       2019-02-09 19:53:50 +08:00 via iPhone   ❤️ 1
    感觉应该是页面请求卡住了,ajax 没有加载,建议 screenshot 调试
    Nick2VIPUser
        4
    Nick2VIPUser  
    OP
       2019-02-15 16:28:59 +08:00
    @tikazyq 卡住之前的 screenshot 没有问题。。。
    lau52y
        5
    lau52y  
       2021-09-17 09:19:46 +08:00
    这个问题,我也遇到过,巧的是我有两台电脑,一台正常运行, pyppeteer 是 0.2.5 另一台版本要低于 0.2.5,然后升级之后,这个问题就解决了(最新版是 0.2.6)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3711 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:51 · PVG 08:51 · LAX 16:51 · JFK 19:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.