我喜欢使用RoboBrowser轻松地填写和提交在线表单,如果需要的话,我想我知道如何访问RoboBrowser底层的requests.Session()实例。
但是我想使用RoboBrowser提交一个表单,然后将会话传递给requests_html.Session(),这样我就可以使用JavaScript呈现该HTML。我该怎么做?有没有办法将请求会话转换为请求-HTML会话?
我已经查阅了有关请求、请求的文档-超文本标记语言和RoboBrowser,以及所有关于请求的问题-超文本标记语言。我也在谷歌上搜索过答案。这些来源都没有帮助。
我知道使用Selenium可能更容易,但这是针对一个正在工作的项目,我不能在其中安装Selenium。我相信我的更广泛的问题-如何将请求会话转换或传递到请求-HTML会话-对于Python社区来说是一个有用的问题。
发布于 2019-01-21 13:25:06
我在Requests-HTML source code中找到了答案。为此,有一个名为HTMLResponse._from_response()的特定类方法,它将响应作为其第一个参数,并将会话作为其第二个参数。
假设我们有一个名为browser的robobrowser.RoboBrowser()对象。然后browser.response就可以访问底层的requests.Response()对象了。要将其传递给名为session的requests_html.HTMLSession(),请执行以下操作:
import requests_html
html_response = requests_html.HTMLResponse._from_response(browser.response, session)
html_response.html.render() # This now workshttps://stackoverflow.com/questions/54215036
复制相似问题