爬虫|无头浏览器介绍和对比

无头浏览器广泛用于自动化测试,

  • PhantomJS浏览器官方已停止维护.
  • Playwright 原生支持 Python,而且支持 Google Chrome/Firefox/Safari 三大浏览器
  • puppeteer是由谷歌的Chrome团队在维护.
    pyppeteer 是非官方 Python 版本的 Puppeteer 库,浏览器自动化库,由日本工程师开发。
参考:https://www.jianshu.com/p/bb6a5aae82f5
selenium Selenium是最广泛使用的开源Web UI(用户界面)自动化测试套件之一。它最初由杰森·哈金斯(Jason Huggins)于2004年开发,作为Thought Works的内部工具。Selenium支持跨不同浏览器,平台和编程语言的自动化。
优点
支持多款主流浏览器,提供了功能丰富的API 接口
缺点
  • 速度太慢、对版本配置要求严苛,最麻烦是经常要更新对应的驱动。
  • 保护机制不允许跨域 cookies 保存,登录的时候必须先打开网页然后后加载 cookies 再刷新的方式很不友好
Puppeteer Puppeteer 是 Google 基于 Node.js 开发的工具,调用 Chrome 的 API,通过 JavaScript 代码来操纵 Chrome 完成一些操作,用于网络爬虫、Web 程序自动测试等,其 API 极其完善,功能非常强大。
pyppeteer
Pyppeteer 是一款非常高效的 web 自动化测试工具,是 Puppeteer 的 Python 版本。
pyppeteer 使用了 Python 异步协程库 asyncio,可整合 Scrapy 进行分布式爬虫。
优点
  • 安装配置的便利性和运行效率方面都要远胜 selenium
  • 支持 asyncio 异步协程,对于并发比较友好
缺点
  • 编程语言只能用javascript
  • 支持的浏览器比较单一,只能用chromium
  • 是第三方的,好久没有更新了,bug 也不少,Pyppeteer 所依赖的 Puppeteer 的原生 JS 版本,本身就很不稳定
使用 Pyppeteer 接受字典和关键字
playwright 简介
Microsoft 于2020 年 1 月 31 日发布Playwright的第一个公共版本时。
playwright-python,是一款基于python的自动化测试工具,可以通过录制功能自动生成测试脚本;
Playwright是一个强大的Python库,仅用一个API即可自动执行Chromium、Firefox、WebKit(Safari )等主流浏览器自动化操作,并同时支持以无头模式、有头模式运行;
优点
  • 跨浏览器,支持Chrome、Firefox、WebKit;
  • 跨系统,支持Windows、Mac、Linux;
  • 跨语言,支持Python、Java、JS;
  • 可用于移动端。
自动等待元素加载
selenium playwright puppeteer性能比较 【爬虫|无头浏览器介绍和对比】爬虫|无头浏览器介绍和对比
文章图片

    推荐阅读