python render_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, or middle,
clickCount:点击次数默认次数为1
delay:点击延迟时间,单位是毫秒
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 根据是不是//开头
超时时间:单位毫秒
等待元素加载
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:图片高
https://www.cnblogs.com/pythonywy/p/11694967.html
python render_requests-html库render的使用相关推荐
- Python之JSON库的使用(二)
Python之JSON库的使用 通过脚本抓取拉勾网某职位的数据,获取公司名称和最高薪资的信息,最后通过pyecharts实现可视化. 主体脚本: #!/usr/bin/env python3 # -* ...
- python利用dominate库生成静态网页
HTML报告:python利用dominate库生成静态网页 dominate 简介 一个生成页面的简单例子 标记的属性 如何生成复杂的文档结构 访问内容和属性 渲染 上下文管理器 装饰器 创建文档 ...
- python 标准模板库_比较了3个Python模板库
python 标准模板库 在我的日常工作中,我花费大量时间将各种来源的数据整理成人类可读的信息. 虽然在很多时候,这只是以电子表格或某种类型的图表或其他数据可视化的形式出现,但在其他情况下,有意义的是 ...
- python内置库之学习ctypes库(二)
ctypes库踩坑日记2 一.自己实现一个dll文件,再用python的ctypes库调用思路1更清晰 二.生成dll文件 三.ctypes库调用 一.自己实现一个dll文件,再用python的cty ...
- python内置库之学习configparser库(一)
python内置库之学习configparser库(一) 1.引言 ini文件简介 [节] 键=值 注:节不能重复出现 2.自己封装了一个增删改查的类,可以参考一下 import configpars ...
- python 脚本撞库国内“某榴”账号
其实日常生活中我们的用户名和密码就那么几个,所以这给撞库带来了可能,本文主要给出python脚本撞库的一点粗浅代码.这里只讨论技术本生,代码中某榴的地址也已经改掉,避免被管理员误解禁言等发生,谢谢大家 ...
- Python中lxml库的安装(Windows平台)
之前写过<Python中requests包的安装>,今天我需要安装lxml库,这里我尝试之前安装requests方式,但是没有成功,几经周折,终于总结出来了一个方法,这里拿出来给大家分享. ...
- 第四章 python的turtle库的运用
我们可以尝试用python的自带turtle库绘制一条蟒蛇 首先我们设计一下蟒蛇的基本形状 我们先把这段蟒蛇绘制的实例代码贴出来,各位可以在自己的本地运行一下看看效果,然后我们再继续分析代码: 1 # ...
- python相对路径库_如何最简单、通俗地理解Python的搜索路径、相对路径、绝对路径?...
目录: 一.笔记 二.我的自学路线 三.笔记目录 一.笔记 1) 搜索路径 ① 能导入模块的话,表示搜索路径中有这个模块文件. ② 当你导入一个模块,Python解析器对模块位置的搜索顺序是:1. 当 ...
- python tkinter库、添加gui界面_使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)...
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二),创建一个,界面,布局,文件,路径 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二) ...
最新文章
- NDK/JNI demo ( 五 ) ORB_SLAM2在Android上的移植过程
- Jsp—02—项目:登录案例
- 一个简单的反射拷贝一份新的实体类
- 启动 Tensorboard
- 003_JavaScript实现
- nginx php unix负载,使用nginx配置多个php fastcgi负载均衡
- 在ssh项目中的中配置数据源c3p0
- King Gym - 102471H
- LeetCode-726 原子的数量 递归
- 移动端vant时间选择器_vue移动端组件库(vant)
- 信息学奥赛一本通(1148:连续出现的字符)
- Python中的快捷键和注释方式
- acc 蓝牙_蓝牙耳机什么牌子好,哪个品牌的无线蓝牙耳机便宜好用
- 多线程—— Queue(储存进程结果)
- 深度学习:文本检测数据集整理
- Hibernate 基本类型
- 诗歌中的宇宙飞船和电子计算机代表什么,高考中可能出现的与神舟五号飞船有关的综合题...
- FLASH编程与改变程序(代码)存储地址的问题
- 原来在Android中请求权限也可以有这么棒的用户体验(转自郭霖)
- 用python做公众号网页_使用python一步一步搭建微信公众平台(一)
热门文章
- 漫画 | 程序员联名把产品经理告上县衙,并列了8大罪状(下)
- 那么多人吹Python,但我真怕你不知道是为什么!
- 360数科张家兴:金融科技的本质是线上化和自动化
- 2 万字长文盘点五种负载均衡策略
- 腾讯公布5G开放平台全景图,定义12大场景,引入45个应用
- MyBatis 缓存原来是这么一回事儿!| 原力计划
- 如何快速在 Springboot 中集成拦截器? | 原力计划
- 华为补助武汉员工,最高每日 2000 元;iPhone SE 2 量产或推迟;PowerShell 7.0 发布 | 极客头条...
- 曾惨遭 Google、Tesla 淘汰,辗转 8 个月,他是如何成为一名顶尖的 AI 工程师?...
- Facebook 与 Twitter 再曝漏洞!用户数据再次被共享?