首页 > 解决方案 > requests-html 和无限滚动

问题描述

我正在检查一个 python 库:requests-html。看起来很有趣,容易和清晰的刮。但是,我不确定如何呈现无限滚动的页面。

从他们的文档中,我了解到我应该呈现一个具有特殊属性(向下滚动)的页面。我正在尝试,但我不知道具体如何。我知道如何使用 selenium 来处理无限滚动,但我想知道 requests-html 是否有可能。

from requests_html import  HTML, HTMLSession

page1 = session.get(url1)
page1.html.render( scrolldown=5,sleep=3)
html = HTML(html=page1.text)
noticeName = html.find('h2.noticeName')
for element in noticeName:
    print(element.text)

它从 13 中找到 10 个元素。10 是可见的,无需滚动(并且由于无限滚动而加载新内容)。

标签: python-3.xpython-requests-html

解决方案


我希望你已经解决了这个问题,但我会为任何其他好奇的人发布这个。

在大多数情况下,如果你想无限滚动,scrolldown需要很大的值,因为它基于 requests_html 在 Chromium 中发送“page down”请求的次数。

根据文档:

scrolldown – 向下翻页次数的整数(如果提供)。

但是,requests_html 使用 pyppeteer 库,该库将页面向下发送为按键。这意味着,如果您所在的页面阻止了向下翻页键,或者只是不使用按键进行无限滚动,您将需要不同的解决方案。

替代解决方案(在 Javascript 中)

文档:requests_html(存档)


推荐阅读