一.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, 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库使用方法详解

    目录 python中requests库使用方法详解 官方文档 什么是Requests 安装Requests库 基本的GET请求 带参数的GET请求 解析json 添加headers 基本POST请求 ...

  2. python 库安装方法及常用库

    python 库安装方法及常用库 python库安装方法: 方法一:setpu.py 1.下载库压缩包,解压,记录下路径:*:/**/……/ 2.运行cmd,切换到*:/**/……/目录下 3.运行s ...

  3. requests第三方库

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

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

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

  5. render()方法是render_to_response

    自django1.3开始:render()方法是render_to_response的一个崭新的快捷方式, 前者会自动使用 RequestContext.而后者必须coding 出来,这是最明显的区别 ...

  6. mac下使用glew库,方法

    mac下使用glew库,方法 分类: OpenGL2015-01-15 15:52 210人阅读 评论(0) 收藏 举报   目录(?)[+]   主要参考http://www.cnblogs.com ...

  7. yii1 render方法解析(记录下)

    先判断主题(themes)中是否有相对应的文件,如果没有变换file为protected/views路径下的文件,如果有文件则变换为themes路径下的文件.然后,如果加载了viewrender模块( ...

  8. Xcode6.1标准Framework静态库制作方法。工程转Framework,静态库加xib和图片。完美解决方案。

    http://www.cocoachina.com/bbs/read.php?tid-282490.html Xcode6.1标准Framework静态库制作方法.工程转Framework,静态库加x ...

  9. paip.ikanalyzer 重加载词库的方法.

    paip.ikanalyzer 重加载词库的方法. 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn ...

随机推荐

  1. Libev源码分析07:Linux下的eventfd简介

    #include <sys/eventfd.h> int eventfd(unsigned int initval, int flags); eventfd创建一个eventfd对象,该对 ...

  2. 微信小程序 mode 的几种模式

    mode="aspectFill" mode 有效值: mode 有 13 种模式,其中 4 种是缩放模式,9 种是裁剪模式. 模式 值 说明缩放 scaleToFill 不保持纵 ...

  3. python基础之逻辑题(2)

    python基础之逻辑题(2) 1.若k为整数,下列while循环执行的次数为? 2.请输出正确结果-----numbers? 3.求结果-----math?   4.求结果-----sum? 5.输 ...

  4. behavior planning——13. implement a cost function in C++

    In the previous quizzes, you designed a cost function to choose a lane when trying to reach a goal i ...

  5. behavior planning——11 create a cost function speed penalty

    A  key part of getting transitions to happen when we want  them to is the design of reasonable cost ...

  6. 如何编程实现快速获取一个整型数中的bit流中1的个数

    int one_in_unsigned(unsigned n) { n =(n & ) & 0x55555555); n =(n & ) & 0x33333333); ...

  7. Example-09-01

    #define _CRT_SECURE_NO_WARNINGS #include <cstdio> #include <cstring> int min(int a, int ...

  8. 梯度下降优化算法综述与PyTorch实现源码剖析

    现代的机器学习系统均利用大量的数据,利用梯度下降算法或者相关的变体进行训练.传统上,最早出现的优化算法是SGD,之后又陆续出现了AdaGrad.RMSprop.ADAM等变体,那么这些算法之间又有哪些 ...

  9. ios9.3.3版本下 document.execCommand("copy") 失败

    copyText()安卓,ios11,ios12都可用 ,并且不弹起输入键盘 // 复制copyText function copyText(text) { var input = document. ...

  10. docker swarm搭建tidb踩坑日记

    背景 公司新项目数据量翻了一倍,每天上亿数据量的读写,传统的单库单表已经满足不了目前的需求,得考虑下分布式存储了.那用啥呢,之前有考虑用到mycat,但是一进官网,一股山寨气息扑面而来,技术群进群还收 ...