一、介绍
puppeteer: web自动化测试-puppeteer入门与实践
pyppeteer:puppeteer的非官方python库.支持python3.5|3.6|3.7
二、环境准备
1.安装python3
2.安装pypptr
python3 -m pip install pyppeteer
三、实例
import asyncio
from pyppeteer import launch
async def main():
browser = await launch()
page = await browser.newPage()
await page.goto('http://www.baidu.com')
await page.screenshot({'path': 'baidu.png'})
dimensions = await page.evaluate('''() => {
return {
width: document.documentElement.clientWidth,
height: document.documentElement.clientHeight,
deviceScaleFactor: window.devicePixelRatio,
}
}''')
print(dimensions)
# >>> {'width': 800, 'height': 600, 'deviceScaleFactor': 1}
await browser.close()
asyncio.get_event_loop().run_until_complete(main())
执行: python3 pypptr-demo.py

第一次执行回去下载chromium,执行后看到控制台有打印信息,在工程目录下有截图。
四、puppeteer与pyppeteer的不同点
puppeteer与pyppeteer大部分情况下是很相同的,由于javascript与python的不同语言特性让这两者有了区别。
1.参数
javascript:
const browser = await puppeteer.lauch({headless:true})
python:
browser = await launch({'headless':'True'})
or browser = await launch(headless=True)
人对于pypptr 即支持字典也支持Keyword风格的参数。
2.元素选择器方法名($ -> querySelector)
在python中,$不能用于方法名。因此,pyppeteer使用Page. queryselector ()/Page.queryselectorall()/Page.xpath()代替Page.$()/Page.$$()/Page.$x(). Pyppeteer还为这些方法提供了缩写,Page.J()、Page.JJ()和Page.Jx()。
puppeteer:
await page.$('#kw')
pypptr:
await page.queryselector('#kw')
or await page.J('#kw')
五、使用问题
1.Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:8....
解决:
pip3 install --upgrade certifi
open /Applications/Python\ 3.6/Install\ Certificates.command
pypptr doc:[https://miyakogi.github.io/pyppeteer/index.html](https://miyakogi.github.io/pyppeteer/index.html)
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有