如果说在Python中还有一款自动化工具能和selenium媲美,那么无疑是pyppeteer,pyppeteer是puppeteer的Python版本,puppeteer是Google开源的一个js库,通过一系列高级接口和Chrome或Chromium在DevTools协议下交互,其实现功能如下:
- 生成页面的截图和PDF。
- 抓取SPA(单页应用程序)并渲染页面
- 自动提交表单,UI测试,键盘输入等。
- 创建一个最新的自动化测试环境,使用最新的JavaScript和浏览器特性,在最新版本的Chrome中直接运行测试。
- 捕捉异常跟踪堆栈来帮助诊断性能问题。
- 测试Chrome扩展
- 当然还有些高级功能如js注入、模拟操作、异步执行、伪装
image
pyperteer是puppeteer的Python实现,相比于selenium具有异步加载、速度快、具备有界面/无界面模式、伪装性更强不易被识别为机器人同时可以伪装手机平板等终端;但是也有一些缺点,如接口不易理解、语义晦涩;
但在selenium被广泛和谐的今天,pyppeteer无疑为防爬墙撕开了一道大口子,针对selenium的淘宝、美团、文书网等网站,目前可通过该库使用selenium的思路继续突破,毫不费劲,以前不能用selenium的现在可以使用pyppeteer轻易拿下,后面将针对pyppeteer进行系列教程的分享,关注公众号【Python之战】不迷路。
pyppeteer基础使用:
使用pyppeteer先看看异步库asyncio,因为asycio也是pyppeteer框架的一部分,不熟悉的看这篇《