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

2021-01-29 14:39:00 +08:00
 Ginson
selenium 占用大,pyppeteer 长期不更新,因此很多人推荐用 Chrome Devtools Protocol 来代替这两个库进行爬虫任务。想请教下大家要怎么快速上手 cpd 的相关知识呢

搜索学习资料的时候发现相关信息不多,看某位大佬写的《深入浅出 CDP (Chrome DevTools Protocol)》 https://clericpy.github.io/blog/posts/20200114151137/ ,但感觉还是很懵。
2370 次点击
所在节点    Python
3 条回复
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
2021-01-29 20:53:37 +08:00
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
2021-02-01 10:04:11 +08:00
@ClericPy 感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/749565

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX