Pyppeteer中文文档_序言_安装_基本使用及注意事项

Pyppeteer是Puppeteer Javascript(无头) chrome/chromium 浏览器自动化库的Python非官方端口,Puppeteer是在Node.js中使用的,而Pyppeteer是专用于Python语言的。

本文档对应的是Pyppeteer的v0.0.25版本,从目前情况来看,Pyppeteer已经很久没更新了,但对于要求不是非常高的爬虫和自动化测试使用起来还是没问题的。

当前文章中会介绍一下安装、使用等一些注意事项,在后续的文章中会逐一介绍各个API类的功能。

Pyppeteer目前支持Python3.5、3.6、3.7,但不建议在3.5的版本中使用,最佳的使用环境为3.6+。

安装

在已安装了Python3.6+的情况下,以windows为例,Win+R -> cmd -> 回车,打开cmd窗口。

输入:pip install pyppeteer,等待安装完毕即可。

如果需要最新版(开发版)的pyppeteer,可以通过pip命令从github地址进行安装。

输入:pip install -U git+https://github.com/miyakogi/pyppeteer.git@dev,等待安装完毕即可。

使用

在第一次使用Pyppeteer时,它会自动下载最新版本的Chromium(~170MB Mac, ~282MB Linux, ~280MB Win),如果你不希望它自动下载,那么在运行任何Pyppeteer脚本之前,手动运行pyppeteer-install命令即可下载(似乎这没什么用,普遍情况下我们都会采用自动下载的方式)。

示例:打开页面并截屏

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())

示例:在页面中执行脚本

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拥有几乎和Puppeteer一样的API,更多API详情可以查看后续文章。

Pyppeteer与Puppeteer之间的差异

Pyppeteer和Puppeteer类似,由于Python和Javascript在语法、特性、主要发展领域的一些差异,在使用及运行效率上略有区别,但不影响其结果。

选项的关键字参数

Puppeteer使用对象(Python使用字典)组成选项传递给方法或函数,Pyppeteer可接受字典类型和关键字参数类型作为选项。

字典样式选项(类似于Puppeteer)

browser = await launch({'headless': True})

关键字参数样式参数

browser = await launch(headless=True)

元素选择器方法名称($->querySelector)

在Python中,$不能用于方法名称,所以使用Page.querySelector()、Page.querySelectorAll()、Page.xpath()代替Page.$()、Page.$$()、Page.$x()。Pyppeteer也有这些方法简写Page.J()、Page.JJ()、Page.Jx()。

Page.evaluate()和Page.querySelectorEval()的参数

Puppeteer的evaluate()采用原生的Javacript函数或Javascript表达式字符串,Pyppeteer采用Javascript字符串。Javascript字符串可以是函数或者表达式。Pyppeteer会自动尝试检查字符串是函数还是表达式,但有时会失败。如果表达式字符被视为函数并应发错误,可以添加force_expr=True参数,这将强制Pyppeteer把字符串视为表达式。

示例:获取页面内容

content = await page.evaluate('document.body.textContent', force_expr=True)

示例:获取元素的内部文本

element = await page.querySelector('h1')

title = await page.evaluate('(element) => element.textContent', element)

API参考

Commands

Environment Variables

Launcher

Browser Class

BrowserContext Class

Page Class

Worker Class

Keyboard Class

Mouse Class

Tracing Class

Dialog Class

ConsoleMessage Class

Frame Class

ExecutionContext Class

JSHandle Class

ElementHandle Class

Request Class

Response Class

Target Class

CDPSession Class

Coverage Class

Debugging

pyppeteer有java版本吗_Pyppeteer中文文档_序言_安装_基本使用及注意事项相关推荐

  1. JAVA JDK1.8 API 中文文档 高清完整版 CHM.rar(永久有效)

    JDK1.8 API 中文文档 高清完整版 CHM.rar 链接:https://pan.baidu.com/s/1w-eMUJrIicS4vnDTGR7RXQ 提取码:t2s6

  2. matlab中文文档_Linux下Matlab安装

    如果觉得文章好看,欢迎点赞.同时欢迎关注微信公众号:氷泠之路. 引言 抱歉国庆由于各种原因一直没空更新文章,啊啊啊啊啊.... 因为在忙各种各样的事情,都怪女朋友,另外也更新了"装备&quo ...

  3. Java Platform SE 8 中文文档

    Oracle拥有两个实现Java平台标准版(Java SE) 8的产品:Java SE开发工具包(JDK) 8和Java SE运行时环境(JRE) 8. JDK 8是JRE 8的超集,包含了JRE 8 ...

  4. [Java]jvm参数选项中文文档

    本文是基于最新的SUN官方文档Java SE 6 Hotspot VM Options 编写的译文.主要介绍JVM中的非稳态选项及其使用说明.  为了让读者明白每个选项的含义,作者在原文基础上补充了大 ...

  5. JAVA的jdk1.8中文文档

    百度网盘自取: 链接: https://pan.baidu.com/s/1tIYmOEoWbWqkB8QTL8R-EA?pwd=wybd 提取码: wybd

  6. Theano 中文文档 0.9 - 5. 安装Theano

    5. 安装Theano 译者:Python 文档协作翻译小组,原文:Installing Theano. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Python ...

  7. Wolfram Mathematica 13.0.1安装流程及中文文档(自用)

    如有条件请使用正版. 安装流程: 下载 Mathematica 的安装程序.安装包链接 下载中文说明文档.中文文档 解压并安装 Mathematica.点击其他方式激活,选择手动激活,复制Math I ...

  8. TinyXML中文文档

    译注:本文是TinyXML 2.5.2版本Document的中文文档,经原作者Lee Thomason同意由hansen翻译,如有误译或者错漏,欢迎指正. 版权:版权归原作者所有,翻译文档版权归本人h ...

  9. jna-platform 简介、中文文档、中英对照文档 下载

    jna-platform 文档 下载链接(含jar包.源码.pom) 组件名称 中文-文档-下载链接 中英对照-文档-下载链接 jna-platform-4.1.0.jar jna-platform- ...

最新文章

  1. IBM Watson大裁70% 员工,撕掉了国内大批伪AI企业最后一块遮羞布!
  2. js /jquery停止事件冒泡和阻止浏览器默认事件
  3. 不再任人欺负!手游安全的进阶之路
  4. 归并排序模板(附求逆序对)
  5. UIColor之【扩展:#FFFFFF -UIColor】
  6. mysql没法修改数据_MySQL学习笔记之数据的增、删、改实现方法
  7. 提现接口网站 php,API提现接口
  8. Date 类的总结。含代码。
  9. C++ string 成员函数 length() size() 和 C strlen() 的区别
  10. CF1096F Inversion Expectation
  11. linux下的经典软件总结
  12. 有效沟通bic法则_有效沟通的五个法则
  13. WIN7中如何卸载IE8或IE9
  14. 2020年叉车司机证考试题库及叉车司机试题解析
  15. 哥德巴赫猜想 php,哥德巴赫猜想的程序验证
  16. 阿里P9纯手打亿级高并发系统设计手册,走进阿里的架构世界
  17. C# 中 volatile 关键字的解读
  18. 第五人格维修服务器中要不要玩,第五人格:匹配制度辣鸡!服务器还是崩!第五真的要凉了吗?...
  19. Surround360 Render目录下RENDER文档——中文翻译
  20. 【0091】【创建postgres后端进程】PostgreSQL如何接收并处理客户端的socket请求(4)?

热门文章

  1. Validate使用及配置
  2. python绘制坐标点画出半径_24行Python代码让小球“弹”起来
  3. 【maven】mvn -pl 指定模块
  4. 【ruoyi若依】引入activiti 模块
  5. Spring Cloud:Eureka Server控制台
  6. spring cloud config笔记
  7. floodlight java_floodlight学习系列(1)——在Eclipse中安装运行floodlight
  8. as3调用java_[AS3]AMF3+JAVA的调用范例
  9. kl散度定义_Kullback-Leibler(KL)散度介绍
  10. html移动端怎么做城市选择,移动端页面单位的选择(px, em, rem, vw)