Python 使用Selenium进行页面滚动不起作用

Python 使用Selenium进行页面滚动不起作用,python,selenium-webdriver,twitter,web-scraping,Python,Selenium Webdriver,Twitter,Web Scraping,我需要一条推文的所有回复/评论。相关的答案是需要下载太多的数据,然后在交叉匹配后丢弃它们,由于速率限制,我不可能这样做。 我试图通过首先使用python加载tweet来抓取页面。为了滚动页面,我尝试使用SeleniumWeb驱动程序。但我仍然只在第一页收到回复。由于某些原因,滚动不起作用。我尝试了这些方法,但在这种情况下没有一种有效 from selenium import webdriver from selenium.webdriver.common.keys import Keys imp

我需要一条推文的所有回复/评论。相关的答案是需要下载太多的数据,然后在交叉匹配后丢弃它们,由于速率限制,我不可能这样做。 我试图通过首先使用python加载tweet来抓取页面。为了滚动页面,我尝试使用SeleniumWeb驱动程序。但我仍然只在第一页收到回复。由于某些原因,滚动不起作用。我尝试了这些方法,但在这种情况下没有一种有效

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Firefox()
driver.get("https://twitter.com/neiltyson/status/912299342559694848")

for in xrange(10):
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    print('height:{}'.format(driver.execute_script("return document.body.scrollHeight")))
    time.sleep(3)

我注意到,在第一次迭代之后,高度并没有改变。

我现在正在运行Python3,所以我将xrange改为range来测试它

试试这个对我有用:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Firefox()
driver.get("https://twitter.com/neiltyson/status/912299342559694848")

page = driver.find_element_by_tag_name('body')

for i in range(10):
    page.send_keys(Keys.PAGE_DOWN)
    time.sleep(3)

是分页还是无限滚动?你能分享你的具体问题的一个最小的、完整的、可验证的例子吗?@ivan7707,我试图按照另一个SO问题中的建议无限滚动,但始终没有完成!通过不同的滚动重复次数,我得到了相同的结果。我猜滚动不起作用,因为评论被加载到页面的另一个主体?谢谢你更新问题。见下面的答案。谢谢@ivan7707。它确实可以滚动。但过了两段时间,twitter停止提供下一条回复。如果我将页面保存为html文件并在浏览器中打开,我会看到错误消息加载似乎需要一段时间。推特可能容量过大或出现短暂的停顿。。我怎样才能发现它?当它发生时,再试一次?我试图增加睡眠时间,但没有帮助。这是一个完全不同的问题。上面的代码滚动显示范围内的输入次数,为我回答您的初始问题,没有问题。该问题也被否决。我想对一些人来说,否决投票是很有趣的。我同意。有些人只是不投票。我发现这个问题和建议非常有帮助,我不得不自己处理这个问题。感谢所有花时间回复并提出建议的人。总有一些人是恶棍或忘恩负义的人。