Pyppeteer简介
介绍Pyppeteer之前先说一下Puppeteer,Puppeteer是谷歌出品的一款基于Node.js开发的一款工具,主要是用来操纵Chrome浏览器的 API,通过Javascript代码来操纵Chrome浏览器,完成数据爬取、Web程序自动测试等任务。
Pyppeteer
其实是Puppeteer的Python版本,下面简单介绍下Pyppeteer的两大特点,chromium浏览器和asyncio框架:
- chromium
Chromium是一款独立的浏览器,是Google为发展自家的浏览器Google Chrome而开启的计划,相当于Chrome的实验版, Chromium的稳定性不如Chrome但是功能更加丰富,而且更新速度很快,通常每隔数小时就有新的开发版本发布。 - asyncio
asyncio是Python的一个异步协程库,自3.4版本引入的标准库,直接内置了对异步IO的支持,号称是Python最有野心的库,官网上有非常详细的介绍:
安装
- 使用
pip install pyppeteer
命令完成pyppeteer库的安装, - 使用
pyppeteer-install
安装chromium浏览器(一般会失败,需要科学上网)- 如果不运行pyppeteer-install命令,在第一次使用pyppeteer的时候也会自动下载并安装chromium浏览器
- 如果安装失败,建议手动下载安装包
- 地址:
1'linux': 'https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/575458/chrome-linux.zip'
2'mac': 'https://storage.googleapis.com/chromium-browser-snapshots/Mac/575458/chrome-mac.zip'
3'win32': 'https://storage.googleapis.com/chromium-browser-snapshots/Win/575458/chrome-win32.zip'
4'win64': 'https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/575458/chrome-win32.zip'
其中575458表示版本号,可以通过
import pyppeteer.chromium_downloader
print('默认版本是:{}'.format(pyppeteer.__chromium_revision__))
得到版本号
解压路径为C:\Users\admin\AppData\Local\pyppeteer\pyppeteer\local-chromium\575458\chrome-win32
测试demo
from pyppeteer import launchasync def main():browser = await launch(headless = False) # headless = False,默认ture,为无头模式page = await browser.newPage()await page.goto('https://www.baidu.com')await page.screenshot({'path': 'example.png'})await browser.close()asyncio.run(main())
安装完成