尝试用 Chrome Devtools Protocol 代替 selenium、pyppeteer 进行爬虫任务,应该如何学习? - V2EX
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
Ginson
V2EX    Python

尝试用 Chrome Devtools Protocol 代替 selenium、pyppeteer 进行爬虫任务,应该如何学习?

  •  
  •   Ginson 2021-01-29 14:39:00 +08:00 2886 次点击
    这是一个创建于 1723 天前的主题,其中的信息可能已经有所发展或是发生改变。
    selenium 占用大,pyppeteer 长期不更新,因此很多人推荐用 Chrome Devtools Protocol 来代替这两个库进行爬虫任务。想请教下大家要怎么快速上手 cpd 的相关知识呢

    搜索学习资料的时候发现相关信息不多,看某位大佬写的《深入浅出 CDP (Chrome DevTools Protocol)》 https://clericpy.github.io/blog/posts/20200114151137/ ,但感觉还是很懵。
    第 1 条附言    2021-02-01 10:00:32 +08:00
    我一直关注的 miyakogi / pyppeteer 这个项目,没发现转到组织维护了,抱歉
    3 条回复    2021-02-01 10:04:11 +08:00
    gzlock
        1
    gzlock  
       2021-01-29 18:11:36 +08:00
    https://i.loli.net/2021/01/29/HXiUpy1LkA25F9D.png
    有在维护的啊,pyppeteer/pyppeteer 在 21 天前有 updated

    https://pypi.org/project/pyppeteer/#history
    pip 上的 pyppeteer 在 1 月 8 号还发布了 0.2.5 版本呢

    跟楼主所说的“长期不更新”的情况相悖,这中间是不是有什么误会
    ClericPy
        2
    ClericPy  
       2021-01-29 20:53:37 +08:00   4
    https://github.com/pyppeteer/pyppeteerhttps://github.com/miyakogi/pyppeteer 个人项目迁移到组织维护了, 实际上是保持更新的, 已经基本算是准官方的 Google puppeteer Python 移植了, 社区维护热度比较高, 三周前有代码更新, 没有长期不更新一说

    与之相对应的主流选择就是微软从 https://github.com/microsoft/playwright 移植过来的 https://github.com/microsoft/playwright-python playwright 是微软开发的类似 puppeteer 的一套脚手架, 除了 Blink 内核的浏览器, 好像还有火狐等其他内核

    以上两者都是正规军入场生态比较完善的选择

    selenium 拿来写爬虫是因为培训班软文较多, 看看就算了

    至于楼主提到的博客, 实际上就是应付面试出的快餐产物, 里面提到的 ichrome 其实是在上班时候自己摸索 CDP (2017 年也没有轮子可选) 做过的代码重构成框架来用的, 目前在新工作里面上生产环境发现了很多 bug, 虽然基本都修复了, 但是底层架构的设计层面都不成熟, 目前拿来做一些不太复杂的小项目没什么问题

    总之一句话概括 CDP 就是通过 Websocket 给开启远程调试接口的 Chrome 进程发送指令进行操作标签的协议, 所有返回结果或者事件也可以在 WS 里收到, 至于用哪个轮子都无所谓
    Ginson
        3
    Ginson  
    OP
       2021-02-01 10:04:11 +08:00
    @ClericPy 感谢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1670 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 16:18 PVG 00:18 LAX 09:18 JFK 12:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86