python-pyppeteer模块使用汇总
一.简单代码示例
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)
dict中key
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("").innerText.length == 7')
9.获取ElementHandle里的属性或者文本
await (await ElementHandle_obj.getProperty('属性')).jsonValue()
await (await ElementHandle_obj.getProperty('textContent')).jsonValue() #文本
10.与浏览器交互
可以参考这个应为request_html就是封装了pyppeteer
python-pyppeteer模块使用汇总的更多相关文章
- python安装模块方法汇总
方法一: 原文地址: http://blog.csdn.net/cighao/article/details/47860041 在 windows 系统下,只需要输入命令 pip install re ...
- Python常见的错误汇总
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 错误: [错误分析]第二个参数必须为类,否则会报TypeError,所以正确的应 ...
- Python tkinter模块弹出窗口及传值回到主窗口操作详解
这篇文章主要介绍了Python tkinter模块弹出窗口及传值回到主窗口操作,结合实例形式分析了Python使用tkinter模块实现的弹出窗口及参数传递相关操作技巧,需要的朋友可以参考下 本文实例 ...
- pyppeteer模块的基本使用
pyppeteer模块的基本使用 引言 Selenium 在被使用的时候有个麻烦事,就是环境的相关配置,得安装好相关浏览器,比如 Chrome.Firefox 等等,然后还要到官方网站去下载对应的驱动 ...
- Python标准模块--threading
1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...
- Python的模块引用和查找路径
模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中 ...
- Python Logging模块的简单使用
前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...
- Python标准模块--logging
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...
- python基础-模块
一.模块介绍 ...
- [Python] 机器学习库资料汇总
声明:以下内容转载自平行宇宙. Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy.其中Numpy是一个用python实现的科学计算包.包括: 一个强大的N维数组对象Array: ...
随机推荐
- 使用node+express+mongodb实现用户注册、登录和验证功能
无论是手机端还是pc端,几乎都包含登录注册方面功能,今天就使用node+express+mongodb实现一套登录注册功能,这里需要自己去安装MongoDB环境,如果没有安装可以看这篇关于MongoD ...
- SpringCloud-创建服务消费者-Ribbon方式(附代码下载)
场景 SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Python高级特性——生成器(generator)
通过上节的学习,我们知道使用列表生成式,可以直接创建一个列表.但是,有些时候,受到内存的限制等实际情况,列表生成式无法满足.比如,一个长度为1000万的列表,普通内存根本就不够,又或者实际处理的过程中 ...
- SAP-BP 创建客商(摘抄)
FORM frm_bp02 . * 更改供应商所需变量 DATA:l_xfeld TYPE xfeld, "复选框 ls_data TYPE vmds_ei_main, "供应商总 ...
- LinqDB 查询数据库
LinqDB数据库查询数据,还是很方便的. 1. 添加Entity数据实体类 方便之后映射操作 /// <summary> /// 课件 /// </summary> [Dat ...
- [转载] redis学习入门 Redis 3.2.100
参考博客: https://blog.csdn.net/flyer_tang/article/details/80320974 https://blog.csdn.net/weixin_3077313 ...
- 分享几个好看又实用的PPT网站~
一,优品PPT[http://www.ypppt.com/] 一个有情怀的免费PPT模板下载网站!拥有非常多很精美的PPT模板,分类齐全,我们可以选择自己喜欢的PPT模板下载套用就可以了. 二,扑奔P ...
- UML简单介绍—类图详解
类图详解 阅读本文前请先阅读:UML简单介绍—类图这么看就懂了 1.泛化关系 一个动物类: /** * 动物类 */ public class Animal { public String name; ...
- ubuntu 安装在硬盘与配置
安装 下载Ubuntu ISO文件,使用rufus制作启动U盘,重启选择这个U盘启动. 用rufus做启动盘时,提示缺少文件,点下载,找到log,进入找到下载地址,手动下载,并放到软件所在路径下的文件 ...
- English: Class words
filing cabinet pan drive penalty charge per annum light setting remote control