我喜欢使用RoboBrowser轻松填写和提交在线表单的方法,并且我认为我了解如何访问RoboBrowser底层的request.Session()实例。
但是我想使用RoboBrowser提交表单,然后将会话传递给requests_html.Session(),这样我就可以使用JavaScript呈现HTML。我怎么做?有没有一种方法可以将Requests会话转换为Requests-HTML会话?
我浏览了Requests,Requests-HTML和RoboBrowser的文档,以及关于Requests-HTML的所有SO问题。我也用Google搜索了答案。这些消息都没有帮助。
我知道使用Selenium可能更容易实现此目的,但这是针对我无法安装Selenium的项目。我相信我关于如何将Requests会话转换或传递到Requests-HTML会话的更广泛的问题对于Python社区是一个有用的问题。
答案 0 :(得分:1)
我在Requests-HTML source code中找到了答案。为此,有一个名为HTMLResponse._from_response()
的特定类方法,该方法将响应作为第一个参数,并将会话作为第二个参数。
假设我们有一个名为robobrowser.RoboBrowser()
的{{1}}对象。然后browser
可以访问基础requests.Response()
对象。要将其传递给名为browser.response
的{{1}},请执行以下操作:
requests_html.HTMLSession()