一.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 根据是不是//开头
    • 方法:时候此方法是page.waitForFunction()的简写
    • 超时时间:单位毫秒

等待元素加载

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的使用的更多相关文章

  1. Python浅谈requests三方库

    requests 三方库用于获取URL资源 1.GET请求访问一个页面 import requests r = requests.get('https://www.cnblogs.com/xqxacm ...

  2. requests第三方库

    requests第三方库 简介: requests是一个优雅而简单的Python 第三方HTTP请求库,专为人类而构建. requests的官方文档同样也非常的完善详尽,而且少见的有中文官方文档:ht ...

  3. 爬虫(一)—— 请求库(一)requests请求库

    目录 requests请求库 爬虫:爬取.解析.存储 一.请求 二.响应 三.简单爬虫 四.requests高级用法 五.session方法(建议使用) 六.selenium模块 requests请求 ...

  4. Python 离线 安装requests第三方库

    一.介绍 requests是Python的一个HTTP客户端库,跟urllib,urllib2类似,不过requests的优势在于使用简单,相同一个功能,用requests实现起来代码量要少很多.毕竟 ...

  5. 爬虫之requests请求库

    介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requests库发送请求将网页内容下 ...

  6. Python——安装requests第三方库

    使用pip安装 在cmd下cd到这个目录下C:\Python27\Scripts,然后执行pip install requests 在cmd 命令行执行 E:   进入e盘 cd  Python\pr ...

  7. requests请求库

    # coding = utf-8 """ 同urllib一样 requests 也是发送http请求的第三方库 兼容Python2和3 实现了http的绝大部分功能. 安 ...

  8. Requests接口测试库-官网快速上手

    Requests 一个发送HTTP请求的库基于urllib3,相比自带的库,提供了更高效简洁的可用方法,测试从业者用来做接口测试的一个好工具 文章内容均来自官网:https://requests.re ...

  9. 爬虫之requests请求库高级应用

    1.SSL Cert Verification #证书验证(大部分网站都是https) import requests respone=requests.get('https://www.12306. ...

  10. requests请求库练习--GitHub登录

    # coding = utf-8 """ 结合抓包工具,采用两种方法模拟登录github直接利用session登录和利用requests登录 ""&q ...

随机推荐

  1. 利用 DFA 算法实现文字过滤

    一.DEA 算法简介 在实现文字过滤的算法中,DFA是唯一比较好的实现算法. DFA 全称为:Deterministic Finite Automaton,即确定有穷自动机.其特征为:有一个有限状态集 ...

  2. Leetcode题解 - 贪心算法部分简单题目代码+思路(860、944、1005、1029、1046、1217、1221)

    leetcode真的是一个学习阅读理解的好地方 860. 柠檬水找零 """ 因为用户支付的只会有5.10.20 对于10元的用户必须找一个5 对于20元的用户可以找(三 ...

  3. 3种骚操作,教你查看 Java 字节码!

    在我们工作.学习.以及研究 JVM 过程当中,不可避免的要查看 Java 字节码,通过查看字节码可以了解一个类的编译结果,也能通过编译器层面来分析一个类的性能. 字节码文件是不能直接打开的,下面栈长教 ...

  4. JVM 学习笔记一 :JVM类加载机制

    前言: 最近在看JVM相关资料,这里记录下学习笔记,希望自己能坚持学完,打牢基础.   一.类加载过程 1,类从被加载到JVM中开始,到卸载为止,整个生命周期包括:加载.验证.准备.解析.初始化.使用 ...

  5. HttpRunner学习9--切换测试报告模板

    前言 在HttpRunner中,给我们提供了 2 套测试报告模板,分别是 default_report_template.html 和 extent_report_template.html . 默认 ...

  6. Python面向对象-枚举类型enum

    枚举类型:在实际问题中,有些变量的值被限定在一个有限的范围内.例如:一个星期有且只有7天,一年有且只有十二个月,一个班每周有6门课程等等.如果把这些量说明为整型.字符串或者其他类型显然是不合适.编程界 ...

  7. .Net Core 发布到 Linux 上时遇到的问题记录

    目前遇到的问题: 1.路径区分大小写及路径用“/”,而不是常用的"\\". windows下路径为:"xxxx\\yyyy",Linux路径下为:"x ...

  8. AE单词备忘

    类的基本特性内 approved 已批准 implemented 已实施 mandatory 强制性的 proposed 偍仪的 validated 已验证

  9. 解决Android killer APK 编译失败,无法继续下一步签名

    报错特征   在应用市场上下载了一个APK,使用Androd killer的编译的功能,结果报错了,报错信息如下: > ... 14 more APK 编译失败,无法继续下一步签名! 解决 解决 ...

  10. docker拉取慢(net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting head)

    systemctl restart docker在docker-hub拉取慢,因为服务器在外网 直接配置阿里云镜像就可以 首先: vim /etc/docker/daemon.json加入下面的那句 ...