Pyppeteer学习笔记
有的没的
浏览器处理过程中的每一个步骤:
1.处理HTML脚本,生成DOM树
2.处理CSS脚本,生成CSSOM树 (DOM和CSSOM是独立的数据结构)
3.将DOM树和CSSOM树合并为渲染树
4.对渲染树中的内容进行布局,计算每个节点的几何外观
5.将渲染树中的每个节点绘制到屏幕中
Headless Browser实际就是节约了第4,5步的时间。
安装
文档地址:https://miyakogi.github.io/pyppeteer/
要求的最佳适配环境:py3.6
安装方法:
pip install pyppeteer
- 安装chromium:
- 因为国内的原因,源下载地址被屏蔽了,所以可以利用国内的镜像地址:https://npm.taobao.org/mirrors/chromium-browser-snapshots/.
- 由于每次运行时都要指定chromium的路径,我的办法是自己写了个简单的模块,然后每次
import
,也可以每次在launch
中直接引入executablePath
的绝对路径
实际应用
首先要说的是,puppeteer 是一个headless
的浏览器,由于phantomJS
已经被deprecated,Firefox和chrome都已经开发出了自己的headless浏览器,puppeteer是个很好用的东西
实例
官方给出了两个实例:
- 截屏
1 | import asyncio |
- 调用JS脚本
1 | import asyncio |
browser = await launch({‘headless’: True})
1 |
|
browser = await launch(headless=True)
1 |
|
content = await page.evaluate(‘document.body.textContent’, force_expr=True)
1 | 获取元素内部文本的示例: |
element = await page.querySelector(‘h1’)
title = await page.evaluate(‘(element) => element.textContent’, element)
```
写在最后
快一年了,似乎已经停止更新了,orz
Author: damn1t
Link: http://microvorld.com/2019/06/21/python/Pyppeteer学习笔记/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.