版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39198406/article/details/86676205
pyppeteer文档:https://miyakogi.github.io/pyppeteer/index.html
参考:https://www.jianshu.com/p/fd9eb385a70e
1 安装pyppeteer
pip install pyppeteer
2 配置puppeteer和chrome
要使用python
调用puppeteer
前当然先要把chrome内核
和driver
安装好。
参考上一篇文章:https://blog.csdn.net/weixin_39198406/article/details/86674215
把node_module里面的puppeteer目录复制出来,根据系统放到以下目录:
Windows: C:\Users\<username>\AppData\Local\pyppeteer
OS X: /Users/<username>/Library/Application Support/pyppeteer
Linux: /home/<username>/.local/share/pyppeteer
# 来自官方文档
然后先确认自己的chrome
内核版本,我的是609904
;
在pyppeteer
目录下新建目录local-chromium/609904
,你可以把609904
换成自己的版本号;
把你下载的chrome-linux
或者是chrome-win
放到local-chromium/609904
目录中去,后面调用pyppeteer
的时候就会自动调用了。
3 例子
需要注意,由于pyppeteer依赖最新版本的typing中的Coroutine(协程),使用3.5版本可能会报错,最好使用python3.6以上版本执行。
python 3.5.3
可以安装pip install typing==3.6.4
解决,python 3.5.2
暂时没有找到解决办法。
参考:PyPi-typing源码
参考:python typing module missing the Coroutine class in python 3.5
import asyncio
import pyppeteer
import os
os.environ['PYPPETEER_CHROMIUM_REVISION'] ='609904'
pyppeteer.DEBUG = True
async def main():
print("in main ")
print(os.environ.get('PYPPETEER_CHROMIUM_REVISION'))
browser = await pyppeteer.launch()
page = await browser.newPage()
await page.goto('http://www.baidu.com')
content = await page.content()
cookies = await page.cookies()
# await page.screenshot({'path': 'example.png'})
await browser.close()
return {'content':content, 'cookies':cookies}
loop = asyncio.get_event_loop()
task = asyncio.ensure_future(main())
loop.run_until_complete(task)
print(task.result())