pyppeteer的环境搭建,常见参数及2个案例

一. pyppeteer介绍

Puppeteer是谷歌出品的一款基于Node.js开发的一款工具,主要是用来操纵Chrome浏览器的 API,通过Javascript代码来操纵Chrome浏览器,完成数据爬取、Web程序自动测试等任务。

Puppeteer 默认以 headless 模式运行,但是可以通过修改配置文件运行“有头”模式。

Pyppeteer的两大特点,chromium浏览器和asyncio框架:

  • Chromium是一款独立的浏览器,是Google为发展自家的浏览器Google Chrome而开启的计划,相当于Chrome的实验版,Chromium的稳定性不如Chrome但是功能更加丰富,而且更新速度很快,通常每隔数小时就有新的开发版本发布。
  • asyncio是Python的一个异步协程库,自3.4版本引入的标准库,直接内置了对异步IO的支持。

github地址:https://github.com/puppeteer/puppeteer/blob/v2.1.1/docs/api.md

中文版教程:https://zhaoqize.github.io/puppeteer-api-zh_CN/

二. 环境搭建
  1. 国内无法访问 可以使用国内镜像
pip install pyppeteer -i https://pypi.douban.com/simple
  1. chromium下载地址:https://npm.taobao.org/mirrors/chromium-browser-snapshots/,下载之后解压之后,通过executablePath属性指定运行浏览器了
三. 常见参数
属性数据类型描述
executablePathstrchrome.exe运行的路径
ignorehttpserrrorsbool忽略https错误,默认false
headlessboolTrue 开始无头浏览器 False关闭无头
dumpiobool设置True 解决浏览器多开卡死

args的参数设置:

属性数据类型描述
–disable-infobars-关闭自动化提示框
–window-size=1920,1080str设置浏览器大小吗,1920是宽,1080是宽
–log-level=30str日志保存等级
–start-maximized-窗口最大化模式
–proxy-server=http://localhost:1080str设置代理
userDataDir=D:\userData\str用户文件保存地址
四. 使用案例
4.1 案例1
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import asyncio
from pyppeteer import launch


async def main():
    # 浏览器 启动参数
    start_parm = {
        # 启动chrome的路径
        "executablePath": r"E:\tmp\chrome-win\chrome.exe",
        # 关闭无头浏览器 默认是无头启动的
        "headless": False,
    }
    # 创建浏览器对象,可以传入 字典形式参数
    browser = await launch(**start_parm)

    # 创建一个页面对象, 页面操作在该对象上执行
    page = await browser.newPage()

    await page.goto('http://www.nows.fun/')  # 页面跳转
    page_text = await page.content()  # 页面内容
    print(page_text)
    await browser.close()  # 关闭浏览器对象


asyncio.get_event_loop().run_until_complete(main())   # 创建异步池并执行main函数。

执行结果如下图:
在这里插入图片描述

4.2 案例2: 设置可视化参数,代码如下
# !/usr/bin/python
# -*- coding: UTF-8 -*-

import asyncio
import tkinter

from pyppeteer import launcher

# 注意 在导入launch之前先把默认参数改了
# 去除自动化 启动参数
launcher.AUTOMATION_ARGS.remove("--enable-automation")
from pyppeteer import launch


async def main():
    # 浏览器 启动参数
    start_parm = {
        # 启动chrome的路径
        "executablePath": r"E:\tmp\chrome-win\chrome.exe",
        # 关闭无头浏览器
        "headless": False,
        "args": [
            '--disable-infobars',  # 关闭自动化提示框
            '--no-sandbox',  # 关闭沙盒模式
            '--start-maximized',  # 窗口最大化模式
        ],
    }
    browser = await launch(**start_parm)
    page = await browser.newPage()

    # 查看当前 桌面视图大小
    tk = tkinter.Tk()
    width = tk.winfo_screenwidth()
    height = tk.winfo_screenheight()
    tk.quit()
    print(f'设置窗口为:width:{width} height:{height}')

    # 设置网页 视图大小
    await page.setViewport(viewport={'width': width, 'height': height})
    await page.goto('http://www.nows.fun/')
    page_text = await page.content()
    print(page_text)
    await browser.close()


asyncio.get_event_loop().run_until_complete(main())
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据知道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值