requests-html库render的使用
一.render的使用
from requests_html import HTMLSession
session =HTMLSession()
response = session.get('https://www.cnblogs.com/pythonywy/')
print(response.html.render())
- 进行js注入
- 模拟人操作浏览器
二.render的参数
1.script(str)
执行的js代码
语法:response.html.render(script='js代码字符串格式')
2.scrolldown(int)
滑动滑块
和sleep联用为多久滑动一次
语法:response.html.render(scrolldown=页面向下滚动的次数)
3.retries(int)
加载页面失败的次数
4.wait(float)
加载页面的等待时间(秒),防止超时(可选)
5.sleep(int)
在页面初次渲染之后的等待时间
6.timeout(int or float)
页面加载时间上线
7.keep_page(bool)
如果为真,允许你用r.html.page访问页面
8.reload(bool)
如果为假,那么页面不会从浏览器中加载,而是从内存中加载
三.r.html.page与浏览器交互
1.基本语法
from requests_html import HTMLSession
session =HTMLSession()
response = session.get('https://www.cnblogs.com/pythonywy/')
print(response.html.render(keep_page=true))
async def run():
#交互语句
await r.html.page.XXX
try:
session.loop.run_until_complete(run())
finally:
session.close()
2.键盘事件
- keyboard.down('键盘名称'):按下键盘不弹起(与键盘有点不太down('h')只会出现一个h而不是hhhhhhh....)
- keyboard.up('键盘名称'):抬起按键
- keyboard.press('键盘名称'):按下+弹起
- keyboard.type('输入的字符串内容',{‘delay’:100}) delay为每个子输入后延迟时间单位为
ms
3.鼠标事件
点击
- click('css选择器',{ 'button':'left', 'clickCount':1,'delay':0})
- button为鼠标的按键
left,right, ormiddle, - clickCount:点击次数默认次数为1
- delay:点击延迟时间,单位是毫秒
- button为鼠标的按键
- mouse.click(x, y,{ 'button':'left', 'clickCount':1,'delay':0})
- x,y:muber数据类型,代表点击对象的坐标
点下去不抬起
- mouse.down({'button':xxx,clickCount:xxx})
抬起鼠标
- mouse.up({'button':xxx,clickCount:xxx})
4.其他
等待
waitFor('选择器, 方法 或者 超时时间')
- 选择器: css 选择器或者一个xpath 根据是不是
//开头 - 方法:时候此方法是page.waitForFunction()的简写
- 超时时间:单位毫秒
- 选择器: css 选择器或者一个xpath 根据是不是
等待元素加载
waitForSelector('css选择器')
获取x,y坐标
mydic =await r.html.page.evaluate('''() =>{
var a = document.querySelector('#kw') #对象的css选择器
var b = a.getBoundingClientRect()
return {'x':b.x,'y':b.y , 'width':b.width , 'height':b.height }
}''')
执行js代码
evaluate('js代码字符串格式')
输入内容
type('css选择器',’内容‘,{’delay‘:100})
聚焦
focus('css选择器')
移动动到
hover('css选择器')
获取cookies
cookies()
设置页面大小
setViewport({'width': 1366, 'height': 768})
截图
screenshot({'path':保存本地路径,'clip':{'x':1,'y':1,'width':100,'height':100}})
- x:图片的x坐标
- y:图片的y坐标
- width: 图片宽
- height:图片高
requests-html库render的使用的更多相关文章
- Python浅谈requests三方库
requests 三方库用于获取URL资源 1.GET请求访问一个页面 import requests r = requests.get('https://www.cnblogs.com/xqxacm ...
- requests第三方库
requests第三方库 简介: requests是一个优雅而简单的Python 第三方HTTP请求库,专为人类而构建. requests的官方文档同样也非常的完善详尽,而且少见的有中文官方文档:ht ...
- 爬虫(一)—— 请求库(一)requests请求库
目录 requests请求库 爬虫:爬取.解析.存储 一.请求 二.响应 三.简单爬虫 四.requests高级用法 五.session方法(建议使用) 六.selenium模块 requests请求 ...
- Python 离线 安装requests第三方库
一.介绍 requests是Python的一个HTTP客户端库,跟urllib,urllib2类似,不过requests的优势在于使用简单,相同一个功能,用requests实现起来代码量要少很多.毕竟 ...
- 爬虫之requests请求库
介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requests库发送请求将网页内容下 ...
- Python——安装requests第三方库
使用pip安装 在cmd下cd到这个目录下C:\Python27\Scripts,然后执行pip install requests 在cmd 命令行执行 E: 进入e盘 cd Python\pr ...
- requests请求库
# coding = utf-8 """ 同urllib一样 requests 也是发送http请求的第三方库 兼容Python2和3 实现了http的绝大部分功能. 安 ...
- Requests接口测试库-官网快速上手
Requests 一个发送HTTP请求的库基于urllib3,相比自带的库,提供了更高效简洁的可用方法,测试从业者用来做接口测试的一个好工具 文章内容均来自官网:https://requests.re ...
- 爬虫之requests请求库高级应用
1.SSL Cert Verification #证书验证(大部分网站都是https) import requests respone=requests.get('https://www.12306. ...
- requests请求库练习--GitHub登录
# coding = utf-8 """ 结合抓包工具,采用两种方法模拟登录github直接利用session登录和利用requests登录 ""&q ...
随机推荐
- uni-app实现多端开发
多端开发,听名字就感觉不一样,一套代码.多端使用,适用于各个平台.市面上很多关于多端开发的框架,比较常用,流行的框架 uni-app,Chameleon(变色龙),taro这些,都可以支持多端,一套代 ...
- 面试连环炮系列(七):HashMap的put操作做了什么
HashMap的put操作做了什么? HashMap的是由数组和链表构成的,JDK7之后加入了红黑树处理哈希冲突.put操作的步骤是这样的: 根据key值计算出哈希值作为数组下标.如果数组的这个位置是 ...
- Azure 上的高可用概念
更多内容,添加公众号关注: 场景一: 某智能家居厂家,用户喊出“小X同学,帮我扫地”后,服务器宕机了,扫地机器人不能立即启动,于是,用户可能再连续喊几次后,无奈又习惯的按下了扫地机器人的启动按钮. 场 ...
- java bean 属性验证框架 valid
项目介绍 java 开发中,参数校验是非常常见的需求. 但是 hibernate-validator 在使用过程中,依然会存在一些问题. 特性 支持 fluent-validation 支持 jsr- ...
- 精通awk系列(12):awk getline用法详解
回到: Linux系列文章 Shell系列文章 Awk系列文章 getline用法详解 除了可以从标准输入或非选项型参数所指定的文件中读取数据,还可以使用getline从其它各种渠道获取需要处理的数据 ...
- asp.net core中使用cookie身份验证
配置 在 Startup.ConfigureServices 方法中,创建具有 AddAuthentication 和 AddCookie 方法的身份验证中间件服务: services.AddAuth ...
- springcloud~配置中心~对敏感信息加密
简介 RSA非对称加密有着非常强大的安全性,HTTPS的SSL加密就是使用这种方法进行HTTPS请求加密传输的.因为RSA算法会涉及Private Key和Public Key分别用来加密和解密,所以 ...
- go路由httprouter中的压缩字典树算法图解及c++实现
目录 go路由httprouter中的压缩字典树算法图解及c++实现 前言 httprouter简介 压缩字典树 概念 插入操作 查询操作 c+++实现 go路由httprouter中的压缩字典树算法 ...
- angular8自定义管道、指令以及获取dom值
版本: 1.自定义管道: example: 定义一个*ngFor 可以获取key值的管道 keyObject.pipe.ts // key value 管道 import { Pipe, PipeTr ...
- U盘启动安装系统之旅----记录自己的第一次操作
网上也有很多装系统的教程,这篇主要是对自己第一次装系统的一个记录,很惭愧,现在才尝试第一次用U盘启动装系统.经常有人说,系统都不会装,就别说搞这行的.当你会了,你就会觉得其实它真的是一件很简单的事情. ...