Pyppeteer 是一个web自动化测试工具。Pyppeteer是基于asyncio构建的,它的所有方法几乎都是coroutine(协作)对象,因此,在构建异步程序的时候,非常方便,天生具有异步性质。
import asyncio
from pyppeteer import launch
async def main():
bro=await launch()
page=await bro.newPage()
await page.goto("https://www.baidu.com")
await page.screenshot({'path':'example.png'})
await bro.close()
asyncio.get_event_loop().run_until_complete(main())
1. 上述代码流程解析:
async
——声明一个异步操作
await
——声明一个耗时操作
asyncio.get_event_loop().run_until_complete(main())
——创建异步池并执行main函数
bro = await launch()
——创建浏览器对象,(可以传入字典形式参数)
page = await bro.newPage()
——创建一个页面对象,页面操作在该对象上执行
await page.goto("http://www.baidu.com")
——页面跳转
await page.screenshot({'path' : 'example.png' })
——png形式截图保存到指定目录
await browser.close()
——关闭浏览器对象
2. launch常用配置
browesr = await launch({})接受字典形式的关键字配置,也可以直接接受键值对的方式进行配置。
配置名 | 值类型 | 描述 |
---|---|---|
ignorehttpserrrors | bool | 忽略https错误,默认false |
headless | bool | 是否可见 |
viewport | dict | 界面大小viewport={‘width’: 1280, ‘height’: 800} |
args | list[str] | 附加参数(标志)过程 |
userDataDir | str | 用户数据目录的路径 |
devtools | bool | 打卡面板,效果同headless |
log level | (int str) | 打印日志的日志级别。默认与根记录器。 |