2

我正在检查一个 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 是可见的,无需滚动(并且由于无限滚动而加载新内容)。

4

2 回答 2

0

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

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

根据文档:

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

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

替代解决方案(在 Javascript 中)

文档:requests_html(存档)

于 2021-05-23T20:56:44.927 回答
0

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

它不会给你唯一的下一个元素,它会从一开始就给你所有的元素。

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

于 2019-12-31T05:33:20.630 回答