7

我想抓取一个页面,其内容似乎是由 html 中引用的应用程序呈现的,例如:

<div id="app" class="app-mobile-pusher"></div>

我正在使用 Requests-HTML python 库中的 render() 方法,如下所示:

with HTMLSession() as session:
    p = session.post(login_url, data=payload)
    r = session.get(content_url)
    r.html.render()
    print(r.text)

此代码返回页面的 HTML,没有任何错误,但也没有任何内容(只是 HTML 标记)。笔记:

  • 我尝试向 session.get 添加超时参数,以便在访问页面之前有更多时间呈现页面以及上述语法的其他变体。

  • 还尝试根据此答案在标头中添加用户代理信息(以规避拒绝我的自动抓取)

  • 当我第一次运行 render() 时,铬浏览器确实下载了

没有任何错误消息让我很困惑,并且很难复制此请求的上下文以在另一个站点上进行测试。

任何有关如何解决的具体建议,或有关如何进行故障排除的想法,都值得赞赏。(Python 3.6,Mac 操作系统)

4

1 回答 1

7

你试过print(r.html.html)了吗?新呈现的代码位于此对象路径下。

于 2019-08-31T15:10:52.910 回答