特点
自带chromium 不用自己下载也可以下载,比较省事.比selenium好用
可异步调用
简介
一. 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/
案例
此处的代码是淘宝案例,配置淘宝webdriver阻拦设置为false
import asyncio
from pyppeteer import launch
width, height = 1366, 768
async def main():
browser = await launch(headless=False, args=['--disable-infobars'], userDataDir='./userdata')
page = await browser.newPage()
await page.setViewport({'width': width, 'height': height})
await page.goto('https://www.taobao.com/')
await page.evaluate(
'''() =>{ Object.defineProperties(navigator,{ webdriver:{ get: () => false } }) }''')
await asyncio.sleep(1000)
参数配置案例
pyppeteer的环境搭建,常见参数及2个案例_错误:找不到满足要求的版本pyee<9.0.0,>=8.1.0(来自pyppeteer)(来自版本:-CSDN博客
Python 爬虫利器之 Pyppeteer 的用法 - 知乎
借鉴以上博主,以防自己忘记