Pyppeteer

Pyppeteer简介

Puppeteer

Puppeteer 是 Chrome 团队开发的一个 node 库,可以通过 api 来控制浏览器的行为,比如点击,跳转,刷新,在控制台执行js脚本等等。使用这个神器作为爬虫访问页面收集数据十分方便。

Pyppeteer

Pyppeteer 是 Puppeteer 的 python 版本。中文资料可以说非常少,只能看官方文档了。不过还是可以看看 Puppeteer 的教程,功能原理相同,只是因为语言差异实现方式不同。

Pyppeteer文档: 点我

Pyppeteer安装

以下内容来自 pyppeteer 文档。

Pyppeteer 需要 python3.6+,安装方式如下。

使用 pip 方式安装:

1
python3 -m pip install pyppeteer

使用来自 github 的最新版本:

1
python3 -m pip install -U git+https://github.com/miyakogi/pyppeteer.git@dev

Pyppeteer使用

注意: 当你首次运行 pyppeteer 时,它会下载 Chromium 浏览器的最近版本。如果你不想它这么做的话,请在使用 pyppeteer 的脚本之前运行 pyppeteer-install 命令。

示例 1 打开网页并截图。

1
2
3
4
5
6
7
8
9
10
11
import asyncio
from pyppeteer import launch

async def main():
browser = await launch()
page = await browser.newPage()
await page.goto('http://example.com')
await page.screenshot({'path': 'example.png'})
await browser.close()

asyncio.get_event_loop().run_until_complete(main())

示例 2 执行 js 脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import asyncio
from pyppeteer import launch

async def main():
browser = await launch()
page = await browser.newPage()
await page.goto('http://example.com')
await page.screenshot({'path': 'example.png'})

dimensions = await page.evaluate('''() => {
return {
width: document.documentElement.clientWidth,
height: document.documentElement.clientHeight,
deviceScaleFactor: window.devicePixelRatio,
}
}''')

print(dimensions)
# >>> {'width': 800, 'height': 600, 'deviceScaleFactor': 1}
await browser.close()

asyncio.get_event_loop().run_until_complete(main())

-------------本文结束感谢您的阅读-------------

本文标题:Pyppeteer

文章作者:Tang

发布时间:2019年01月18日 - 20:01

最后更新:2019年01月21日 - 14:01

原始链接:https://tangx1.com/pyppeteer/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%