pyppeteer:比 selenium 更高效的爬虫利器

发表于:2021-4-21 09:28

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:叶狼    来源:CSDN

  Pyppeteer简介
  提起selenium想必大家都不陌生,作为一款知名的Web自动化测试框架,selenium支持多款主流浏览器,提供了功能丰富的API接口,经常被我们用作爬虫工具来使用。但是selenium的缺点也很明显,比如速度太慢、对版本配置要求严苛,最麻烦是经常要更新对应的驱动。还有些网页是可以检测到是否是使用了selenium。并且selenium所谓的保护机制不允许跨域cookies保存以及登录的时候必须先打开网页然后后加载cookies再刷新的方式很不友好。
  今天就给大家介绍另一款web自动化测试工具Pyppeteer,虽然支持的浏览器比较单一,但在安装配置的便利性和运行效率方面都要远胜selenium。
  介绍Pyppeteer之前先说一下Puppeteer,Puppeteer是Google基于Node.js开发的一个工具,主要是用来操纵Chrome浏览器的API,通过Javascript代码来操纵Chrome浏览器的一些操作,用作网络爬虫完成数据爬取、Web程序自动测试等任务。其API极其完善,功能非常强大。而Pyppeteer又是什么呢?它实际上是Puppeteer的Python版本的实现,但他不是Google开发的,是一位来自于日本的工程师依据Puppeteer的一些功能开发出来的非官方版本。
  Pyppeteer其实是Puppeteer的Python版本。pyppeteer模块看不懂就去看puppeteer文档,pyppeteer只是在puppeteer之上稍微包装了下而已。
  注意:本来chrome就问题多多,puppeteer也是各种坑,加上pyppeteer是基于前者的改编python版本,也就是产生了只要前两个有一个有bug,那么pyppeteer就会原封不动的继承下来,本来这没什么,但是现在遇到的问题就是pyppeteer这个项目从2018年9月份之后几乎没更新过,前两者都在不断的更新迭代,而pyppeteer一直不更新,导致很多bug根本没人修复。
  下面简单介绍下Pyppeteer的两大特点:chromium浏览器和asyncio框架:
  1).chromium
  Chromium是一款独立的浏览器,是Google为发展自家的浏览器GoogleChrome而开启的计划,相当于Chrome的实验版,且Chromium是完全开源的。二者基于相同的源代码构建,Chrome所有的新功能都会先在Chromium上实现,待验证稳定后才会移植,因此Chromium的版本更新频率更高,也会包含很多新的功能,但作为一款独立的浏览器,Chromium的用户群体要小众得多。两款浏览器“同根同源”,它们有着同样的Logo,但配色不同,Chrome由蓝红绿黄四种颜色组成,而Chromium由不同深度的蓝色构成。
  Pyppeteer的web自动化是基于chromium来实现的,由于chromium中某些特性的关系,Pyppeteer的安装配置非常简单,关于这一点稍后我们会详细介绍。
  2).asyncio
  asyncio是Python的一个异步协程库,自3.4版本引入的标准库,直接内置了对异步IO的支持,号称是Python最有野心的库,官网上有非常详细的介绍:https://docs.python.org/3/library/asyncio.html

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号