32Pyppeteer框架介绍

发布时间 2023-11-05 00:13:37作者: 冷夜O

 

r'''
Pyppeteer框架简介
Pyppeteer是一个基于Puppeteer(谷歌基于node.js开发的自动化框架)的Python库,它提供了一个高级API来控制无头Chrome或Chromium浏览器。
它允许你通过Python代码自动化浏览器操作,例如导航到网页、与页面元素交互、执行JavaScript代码、截取网页截图等。

库安装
pip  install Pyppeteer

版本
C:\Users\Administrator>pip show Pyppeteer
Name: pyppeteer
Version: 1.0.2

环境配置,首次运行前需要配置,不然默认打开浏览器也会联网配置
在python Scripts 中执行命令
D:\Python310\Scripts>pyppeteer-install

chromium安装路径
Chromium extracted to: C:\Users\Administrator\AppData\Local\pyppeteer\pyppeteer\local-chromium\588429
Chrome/71.0.3542.0

优点: 支持异步,比selenium执行快。
缺点: Puppeteer 比较适合前端使用,python调用pyppeteer的话,虽然打开浏览器很快,但是Pyppeteer库支持Puppeteer和chromium版本都很低,
Pyppeteer库的开发者很久没维护了。
'''
import asyncio
from pyppeteer import launch
from time import sleep


async def main():
    browser = await launch(headless=False)
    page = await browser.newPage()
    await page.goto('https://www.baidu.com')
    sleep(360)
    await browser.close()


async def main2():
    browser = await launch()
    page = await browser.newPage()
    await page.goto('https://spa2.scrape.center')
    await page.waitForSelector('.item .name')
    await page.click('.item .name', options={
        'button': 'right',
        'clickCount': 1,  # 1 or 2
        'delay': 1000,  # 毫秒
    })
    await page.screenshot({'path': 'baidu.png'})
    # sleep(360)
    await browser.close()


if __name__ == '__main__':
    asyncio.get_event_loop().run_until_complete(main())
    # asyncio.get_event_loop().run_until_complete(main2())