滚动在Python中使用Selenium滚动时进一步加载的元素
我正在尝试创建一个Instagram抓取机器人,它使用Python+Selenium收集追随者和追随者的列表 但是,当用户滚动列表直到列表用尽时,该列表将继续加载。我附上一张截图以供参考(由于隐私原因隐藏了一些内容): 现在,我相信我有两种方法来实现这一点:滚动在Python中使用Selenium滚动时进一步加载的元素,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我正在尝试创建一个Instagram抓取机器人,它使用Python+Selenium收集追随者和追随者的列表 但是,当用户滚动列表直到列表用尽时,该列表将继续加载。我附上一张截图以供参考(由于隐私原因隐藏了一些内容): 现在,我相信我有两种方法来实现这一点: 继续阅读用户名,然后继续滚动 一直滚动到最后,然后从源代码中读取所有用户名 我一直在用第二种方法来解决这个问题。然而,我不知道如何知道什么时候没有更多的内容可以滚动。我如何实现这一点(前提是我不知道该元素的长度) 不使用方法1的原因:滚动
不使用方法1的原因:滚动时,DOM会不断刷新,因此很难跟踪已读取的用户名。一种方法是跟踪
div
中包含追随者的li
元素的子元素的数量。如果在滚动事件之后它没有增加,则表示您已到达列表的末尾。是的,我想到了这一点。但这需要在每次滚动后检查li
元素的计数。这似乎是对计算能力的一种浪费。我尝试了其他一些方法,比如向下滚动total\u users/users\u向下滚动一次,但这并不顺利。因此,我调整了您的想法,但将KEY\u DOWN
更改为END
信号,因此在计算li
标记的计数时,重复次数更少。在评论中删掉它,因为它可能会帮助其他人。我希望在无法进一步滚动时,它能为我提供一个信号。然而,这有所帮助。现在接受这个解决方案。