当今常用的三个自动化测试(或者爬虫)库:
库 | Selenium | Puppeteer | Playwright |
---|---|---|---|
JavaScript 支持 | 官方支持 | 官方支持 | 官方支持 |
Python 异步支持 | 无 | 第三方,而且 bug 不少 | 官方支持 |
Python 同步支持 | 官方支持 | 无 | 官方支持 |
维护者 | 社区 | 微软 | |
可操作性浏览器 | Chrome/Firefox/Safari/Edge | Chrome/Firefox | Chrome/Firefox/Safari/Edge |
模拟操作丰富度 | 一般 | 极好 | 很好 |
Cookie 支持 | 一般 | 一般 | API 非常友好 |
代理切换支持 | 一般 | 一般 | 极好 |
所以,Playwright是未来趋势,学会用Playwright即可
题外话:Playwright团队是微软把puppeteer团队挖过去做的,所以基本上puppeteer的特性Playwright都有,并在puppeteer基础上做了很多优化。
1. 安装
pip install --upgrade pip
pip install playwright
playwright install #一定不要忘了这句
# npm install playwright #(如果上一条命令无代理无法安装就用这条命令,要使用nodejs设置npm代理安装)
不熟悉npm的可参考(如果你是在有网络限制的公司安装playwrigtht):什么是 npm —— 写给初学者的编程教程
如果实在不行,也可离线安装,参考:
win10系统开发环境快速安装Playwright python的方法_phoenix339的博客-****博客_playwright安装
如果某个浏览器安装有问题,可挑选特定的安装
如:npm i -D playwright-webkit
Installation | Playwright 中文文档 | Playwright 中文网
2. 使用:
见后续教程。
3. 使用问题解决:
3.1.当在shell或者pycharm的python console可运行,但在pycharm中点run报如下错误:
ModuleNotFoundError: No module named 'playwright.sync_api'; 'playwright' is not a package
Run->Edit Configuration->勾选"Run with Python Console"
原因我还没想明白。
另外,避免开多个窗口,则可点击File -> Settings -> Build, Execution, Deployment -> Console
勾选: use existing console for "Run with Python Console"
问题参考:PyCharm运行时跳多个Python Console窗口的解决方法_ziyi_mi的博客-****博客
Pycharm 运行python 出现ModuleNotFoundError - 简书
参考资料:
Getting Started | Playwright Python
Playwright: 比 Puppeteer 更好用的浏览器自动化工具 - 知乎