无头浏览器介绍和对比

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

  • 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性能比较

无头浏览器介绍和对比_第1张图片

你可能感兴趣的:(爬虫,firefox,python,前端)