滚动在Python中使用Selenium滚动时进一步加载的元素

滚动在Python中使用Selenium滚动时进一步加载的元素,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我正在尝试创建一个Instagram抓取机器人,它使用Python+Selenium收集追随者和追随者的列表 但是,当用户滚动列表直到列表用尽时,该列表将继续加载。我附上一张截图以供参考(由于隐私原因隐藏了一些内容): 现在,我相信我有两种方法来实现这一点: 继续阅读用户名,然后继续滚动 一直滚动到最后,然后从源代码中读取所有用户名 我一直在用第二种方法来解决这个问题。然而,我不知道如何知道什么时候没有更多的内容可以滚动。我如何实现这一点(前提是我不知道该元素的长度) 不使用方法1的原因:滚动

我正在尝试创建一个Instagram抓取机器人,它使用Python+Selenium收集追随者和追随者的列表

但是,当用户滚动列表直到列表用尽时,该列表将继续加载。我附上一张截图以供参考(由于隐私原因隐藏了一些内容):

现在,我相信我有两种方法来实现这一点:

  • 继续阅读用户名,然后继续滚动
  • 一直滚动到最后,然后从源代码中读取所有用户名
  • 我一直在用第二种方法来解决这个问题。然而,我不知道如何知道什么时候没有更多的内容可以滚动。我如何实现这一点(前提是我不知道该元素的长度)


    不使用方法1的原因:滚动时,DOM会不断刷新,因此很难跟踪已读取的用户名。

    一种方法是跟踪
    div
    中包含追随者的
    li
    元素的子元素的数量。如果在滚动事件之后它没有增加,则表示您已到达列表的末尾。

    是的,我想到了这一点。但这需要在每次滚动后检查
    li
    元素的计数。这似乎是对计算能力的一种浪费。我尝试了其他一些方法,比如向下滚动
    total\u users/users\u向下滚动一次
    ,但这并不顺利。因此,我调整了您的想法,但将
    KEY\u DOWN
    更改为
    END
    信号,因此在计算
    li
    标记的计数时,重复次数更少。在评论中删掉它,因为它可能会帮助其他人。我希望在无法进一步滚动时,它能为我提供一个信号。然而,这有所帮助。现在接受这个解决方案。