【问题标题】:Combining RoboBrowser with Requests-HTML将 RoboBrowser 与 Requests-HTML 相结合
【发布时间】:2019-06-10 10:04:51
【问题描述】:

我喜欢使用 RoboBrowser 轻松填写和提交在线表单,并且我想我了解如何访问 RoboBrowser 底层的 requests.Session() 实例(如果需要)。

但我想使用 RoboBrowser 提交表单,然后将会话传递给 requests_html.Session(),这样我就可以使用 JavaScript 呈现 HTML。我怎么做?有没有办法将 Requests 会话转换为 Requests-HTML 会话?

我查看了 Requests、Requests-HTML 和 RoboBrowser 的文档,以及所有关于 Requests-HTML 的 SO 问题。我也用谷歌搜索了答案。这些来源都没有帮助。

我知道为此目的使用 Selenium 可能更容易,但这是针对工作中的项目,我无法安装 Selenium。我相信我关于如何将 Requests 会话转换或传递到 Requests-HTML 会话的更广泛的问题对 Python 社区很有用。

【问题讨论】:

    标签: python-3.x python-requests robobrowser python-requests-html


    【解决方案1】:

    我在Requests-HTML source code 中找到了答案。为此,有一个名为 HTMLResponse._from_response() 的特定类方法,它将响应作为其第一个参数,将会话作为其第二个参数。

    假设我们有一个名为browserrobobrowser.RoboBrowser() 对象。然后browser.response 可以访问底层的requests.Response() 对象。要将其传递给名为 sessionrequests_html.HTMLSession(),请执行以下操作:

    import requests_html
    
    html_response = requests_html.HTMLResponse._from_response(browser.response, session)
    
    html_response.html.render()  # This now works
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 2023-04-07
      • 1970-01-01
      • 2019-12-02
      • 2012-05-19
      • 2020-05-04
      相关资源
      最近更新 更多