一.简单代码示例

import asyncio
from pyppeteer import launch async def main():
browser = await launch()
page = await browser.newPage() #打开一个新页面
await page.goto('https://www.baidu.com/') #访问百度
await page.screenshot({'path': 'baidu.png'}) #截图并存储
await browser.close() asyncio.get_event_loop().run_until_complete(main())

二.page对象的方法

await page.方法

1.设置相关

setUserAgent(str)

设置UserAgent

setCookie(cookie1, cookie2.......)

设置cookie

cookies 应该是包含这些字段的字典:
name(str):必填
value(str):必填
url (STR)
domain (STR)
path (STR)
expires (数字):Unix时间,以秒为单位
httpOnly (布尔)
secure (布尔)
sameSite(str):'Strict'或'Lax'

2.页面相关

goto(url)

访问网页

reload()

页面加载完毕

goBack()/goForward()

页面后退/页面前进

3.执行js

evaluate(js_str)

对于某个元素执行js

4.截图

screenshot(dict)

dictkey

path(str):保存图像的文件路径。屏幕截图类型将从文件扩展名中推断出来。 #基本上写个这个就够了

type(str):指定屏幕截图类型,可以是jpeg或 png。默认为png。

quality(int):图像的质量,在0-100之间。不适用于png图像。

fullPage(bool):如果为true,请截取完整的可滚动页面。默认为False。

clip(字典):指定页面剪切区域的对象。此选项应包含以下字段:

x (int):剪辑区域左上角的x坐标。

y (int):剪辑区域左上角的y坐标。

width (int):剪切区域的宽度。

height (int):剪切区域的高度。

omitBackground (bool):隐藏默认的白色背景并允许捕获具有透明度的屏幕截图。

5.保存pdf

pdf(dict)

返回: 返回生成的PDF bytes对象。

path (str):保存PDF的文件路径。
scale(float):网页渲染的比例,默认为1。
displayHeaderFooter(bool):显示页眉和页脚。默认为False。
headerTemplate(str):打印标题的HTML模板。应该是有效的HTML标记与以下类。
date:格式化的打印日期
title:文件名
url:文件位置
pageNumber:当前页码
totalPages:文档中的总页数
footerTemplate(str):打印页脚的HTML模板。应该使用相同的模板headerTemplate。
printBackground(bool):打印背景图形。默认为 False。
landscape(bool):纸张方向。默认为False。
pageRanges(字符串):要打印的纸张范围,例如“1-5,8,11-13”。默认为空字符串,表示所有页面。
format(str):纸张格式。如果设置,优先于 width或height。默认为Letter。
width (str):纸张宽度,接受标有单位的值。
height (str):纸张高度,接受标有单位的值。
margin(字典):纸张边距,默认为None。
top (str):上边距,接受标有单位的值。
right (str):右边距,接受标有单位的值。
bottom (str):底部边距,接受标有单位的值。
left (str):左边距,接受标有单位的值。

6.获取内容

content()

页面文本

print(await page.evaluate('document.body.textContent', force_expr=True)) 这样也行

cookies()

页面cookies

title()

标题

7.获取元素

返回都是ElementHandle或者None

print(await page.querySelector('div选择器'))    #获取第一个
print(await page.querySelectorAll("CSS选择器")) #获取全部 querySelectorEval('css选择器','js_str','前面js需要的参数') #获取第一个并对其执行js
querySelectorAllEval('css选择器','js_str','前面js需要的参数') #获取全部并对其执行js await page.xpath('xpath选取器')

8.等待方式

# await page.waitForXPath('h3', timeout=300)
# await page.waitForNavigation(waitUntil="networkidle0")
# await page.waitForFunction('document.getElementByTag("h3")')
# await page.waitForSelector('.t')
# await page.waitFor('document.querySelector("#t")')
# await page.waitForNavigation(waitUntil='networkidle0')
# await page.waitForFunction('document.querySelector("").inner‌​Text.length == 7')

9.获取ElementHandle里的属性或者文本

await (await ElementHandle_obj.getProperty('属性')).jsonValue()
await (await ElementHandle_obj.getProperty('textContent')).jsonValue() #文本

10.与浏览器交互

request_html中render操

可以参考这个应为request_html就是封装了pyppeteer

python-pyppeteer模块使用汇总的更多相关文章

  1. python安装模块方法汇总

    方法一: 原文地址: http://blog.csdn.net/cighao/article/details/47860041 在 windows 系统下,只需要输入命令 pip install re ...

  2. Python常见的错误汇总

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 错误: [错误分析]第二个参数必须为类,否则会报TypeError,所以正确的应 ...

  3. Python tkinter模块弹出窗口及传值回到主窗口操作详解

    这篇文章主要介绍了Python tkinter模块弹出窗口及传值回到主窗口操作,结合实例形式分析了Python使用tkinter模块实现的弹出窗口及参数传递相关操作技巧,需要的朋友可以参考下 本文实例 ...

  4. pyppeteer模块的基本使用

    pyppeteer模块的基本使用 引言 Selenium 在被使用的时候有个麻烦事,就是环境的相关配置,得安装好相关浏览器,比如 Chrome.Firefox 等等,然后还要到官方网站去下载对应的驱动 ...

  5. Python标准模块--threading

    1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...

  6. Python的模块引用和查找路径

    模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中 ...

  7. Python Logging模块的简单使用

    前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...

  8. Python标准模块--logging

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  9. python基础-模块

    一.模块介绍                                                                                              ...

  10. [Python] 机器学习库资料汇总

    声明:以下内容转载自平行宇宙. Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy.其中Numpy是一个用python实现的科学计算包.包括: 一个强大的N维数组对象Array: ...

随机推荐

  1. Caffe源码-InsertSplits()函数

    InsertSplits()函数 在Net初始化的过程中,存在一个特殊的修改网络结构的操作,那就是当某层的输出blob对应多个其他层的输入blob时,会在输出blob所在层的后面插入一个新的Split ...

  2. TrueTime的安装、运行例程

    一.前言 Truetime的安装是为了完成课程相关需求,但在安装过程中遇到一些问题,想到自己之前注册了博客所以打算把这个作为第一篇的内容.请放心这个的安装过程并不困难,可以放心食用. 二.准备 Tru ...

  3. JavaScript图形实例:圆形图案

    在HTML5的Canvas 2D API中,可以调用arc方法绘制圆或圆弧.该方法调用格式为: context . arc(x, y, radius, startAngle, endAngle, an ...

  4. Winform中使用Timer实现滚动字幕效果(附代码下载)

    场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建一个Fo ...

  5. .Net中WebService的Demo示例

    一.创建一个Web服务 1.新建一个项目WebserverDemo 2.在项目处添加新建项,添加一个web服务 3.编辑TestServer.asmx文件 3.1 TestServer.asmx默认的 ...

  6. 【iOS bug记录】UICollectionviewCell刷新变得这么莫名其妙?

    项目是一个即时聊天的社交软件,聊天流采用的是UICollectionView,随着进度的完善,发现一个特别的bug,UICollectionviewCell的复用,并没有直接insert进去,而是出现 ...

  7. Docke部署nginx并配置nginx

    一.在docker中下载nginx镜像 docker pull nginx 二.在宿主机中创建挂在目录 mkdir -p /data/nginx/{conf,conf.d,html,log} 三.在挂 ...

  8. java多层嵌套集合的json,如何获取多层集合中所需要的value

    就很简单的一个问题折磨了整整一天,好在压抑的心情终于释放了,终于闲下来觉得是不是应该记录一下. 首先这个json串是从外网接口返回的数据,想要了解的朋友们可以复制到json解析器中看一下格式:http ...

  9. Pick of the Week'19 | 图数据库 Nebula 第 47 周看点-- insert 的二三事

    每周五 Nebula 为你播报每周看点,每周看点由本周大事件.用户问答.Nebula 产品动态和推荐阅读构成. 今天是 2019 年第 47 个工作周的周五,来和 Nebula 看看本周有什么图数据库 ...

  10. maven 解决jar包冲突及简单使用

    maven 解决jar包冲突 1.jar包冲突原因 maven中使用坐标导入jar包时会把与之相关的依赖jar包导入(导入spring-context的jar时就会把spring的整个主体导入) ,而 ...