requests-html库render方法的使用
一.render的使用
from requests_html import HTMLSession
session =HTMLSession()
response = session.get('https://www.cnblogs.com/guapitomjoy/')
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/guapitomjoy/')
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库使用方法详解
目录 python中requests库使用方法详解 官方文档 什么是Requests 安装Requests库 基本的GET请求 带参数的GET请求 解析json 添加headers 基本POST请求 ...
- python 库安装方法及常用库
python 库安装方法及常用库 python库安装方法: 方法一:setpu.py 1.下载库压缩包,解压,记录下路径:*:/**/……/ 2.运行cmd,切换到*:/**/……/目录下 3.运行s ...
- requests第三方库
requests第三方库 简介: requests是一个优雅而简单的Python 第三方HTTP请求库,专为人类而构建. requests的官方文档同样也非常的完善详尽,而且少见的有中文官方文档:ht ...
- 爬虫(一)—— 请求库(一)requests请求库
目录 requests请求库 爬虫:爬取.解析.存储 一.请求 二.响应 三.简单爬虫 四.requests高级用法 五.session方法(建议使用) 六.selenium模块 requests请求 ...
- render()方法是render_to_response
自django1.3开始:render()方法是render_to_response的一个崭新的快捷方式, 前者会自动使用 RequestContext.而后者必须coding 出来,这是最明显的区别 ...
- mac下使用glew库,方法
mac下使用glew库,方法 分类: OpenGL2015-01-15 15:52 210人阅读 评论(0) 收藏 举报 目录(?)[+] 主要参考http://www.cnblogs.com ...
- yii1 render方法解析(记录下)
先判断主题(themes)中是否有相对应的文件,如果没有变换file为protected/views路径下的文件,如果有文件则变换为themes路径下的文件.然后,如果加载了viewrender模块( ...
- Xcode6.1标准Framework静态库制作方法。工程转Framework,静态库加xib和图片。完美解决方案。
http://www.cocoachina.com/bbs/read.php?tid-282490.html Xcode6.1标准Framework静态库制作方法.工程转Framework,静态库加x ...
- paip.ikanalyzer 重加载词库的方法.
paip.ikanalyzer 重加载词库的方法. 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn ...
随机推荐
- oracle函数 VSIZE(X)
[功能]返回X的大小(字节)数 [参数]x select vsize(user),user from dual; 返回:6 asdied select length('adfad合理') " ...
- css3制作动画性能问题
这篇文章主要讲的是怎样制作流畅动画,特别是针对移动端.在这里我首先介绍制作动画的几种方法的优缺点:接着会着重介绍用css3制作动画的注意事项. 1.用canvas.css3.jquery制作动画 Ca ...
- @bzoj - 5219@ [Lydsy2017省队十连测]最长路径
目录 @description@ @solution@ @accepted code@ @details@ @description@ 在Byteland一共有n个城市,编号依次为1到n,形成一个n个 ...
- eclipse maven项目导出所使用的jar包
在eclipse中定位到maven项目的pom.xml文件右击pom.xml文件,选择Run As-->Maven build…在打开的页面中,GOLAS栏输入“dependency:copy- ...
- [Pytorch]基于混和精度的模型加速
这篇博客是在pytorch中基于apex使用混合精度加速的一个偏工程的描述,原理层面的解释并不是这篇博客的目的,不过在参考部分提供了非常有价值的资料,可以进一步研究. 一个关键原则:“仅仅在权重更新的 ...
- 在 Linux 安装 IIS?
在 Linuxe 安装 IIS? 在群里有人说他的老大让他在 Linux 中安装 IIS. 一群人回复不同的解决方案. 在 Linux 安装虚拟机,再安装 Windows. (哈哈哈) 这个问题虽然有 ...
- [转]FileDescriptor详解
FileDescriptor是"文件描述符". FileDescriptor可以被用来表示开放的文件,开放的套接字等. 当FileDescriptor表示文件来说,当FIleDes ...
- HDU 1698 Just a Hook 线段树区间更新、
来谈谈自己对延迟标记(lazy标记)的理解吧. lazy标记的主要作用是尽可能的降低时间复杂度. 这样说吧. 如果你不用lazy标记,那么你对于一个区间更新的话是要对其所有的子区间都更新一次,但如果用 ...
- 51nod1327 棋盘游戏
远古大坑 神仙DP状态设计题 https://blog.csdn.net/white_elephant/article/details/83592103 从行的角度入手,无论如何都要状压 每列最多放一 ...
- 【u236】火炬
Time Limit: 1 second Memory Limit: 128 MB 2008北京奥运会,你想成为四川汶川的一名火炬手,结果层层选拔,终于到了最后一关,这一关是一道很难的题:任意给定一个 ...