request-html和无限滚动

时间:2019-06-13 17:48:07

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

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

从他们的文档中,我了解到我应该呈现一个具有特殊属性的页面(向下滚动)。我正在尝试,但我不知道具体如何。我知道如何使用硒来处理无限滚动,但是我想知道request-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个元素在不滚动的情况下可见(并且由于无限滚动而加载新内容)。

2 个答案:

答案 0 :(得分:0)

scrolldown = 5表示向下滚动5像素,您的显示器很小吗?或vm高度那么小?现在给它一个更大的值,例如有睡眠的屏幕高度 2000或5000,没有睡眠

它不会为您提供唯一的下一个元素,而是从一开始就为您提供所有元素。

我将很快添加一些示例代码。

答案 1 :(得分:0)

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

在大多数情况下,如果您想无限滚动,scrolldown 需要是一个大值,因为它是基于 requests_html 在 Chromium 中发送“向下翻页”请求的次数。< /p>

根据文档:

<块引用>

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

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

Alternative solution (in Javascript)

Documentation: requests_html (archived)