使用Selenium的页面滚动不起作用

时间:2017-09-26 18:53:22

标签: python selenium-webdriver twitter web-scraping

我需要推文的所有回复/评论。相关的question有一个答案,需要下载过多的数据,然后在交叉匹配后将其丢弃,由于速率限制,我无法做到这一点。 我试图通过首先使用python加载推文url来刮取页面。为了滚动页面,我尝试使用selenium web驱动程序。但我仍然只收到第一页的回复。由于某种原因,滚动不起作用。我尝试了这些1234方法,但在这种情况下都没有。

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)

我注意到, height 在第一次迭代后没有改变。

1 个答案:

答案 0 :(得分:1)

我现在正在运行Python3,因此我将xrange更改为范围以测试它。

试试这个(适合我):

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)