使用pyppeteer调用puppeteer访问页面

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\\AppData\Local\pyppeteer
OS X: /Users//Library/Application Support/pyppeteer
Linux: /home//.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())

你可能感兴趣的:(爬虫)