【发布时间】:2018-05-29 15:50:41
【问题描述】:
我正在尝试抓取这个(无限)页面(www.mydealz.de),但我无法让我的网络驱动程序向下滚动页面。 我使用 Python (3.5)、Selenium (3.6) 和 PhantomJS。 我已经尝试了几种方法,但 webdriver 只是不会滚动 - 它只是给了我第一页。
第一种方法(通常的滚动方法):
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(1)
new_height = driver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
last_height = new_height
第二种方法(只需按几次向下键并释放它,也尝试在两次按下之间等待):
ActionChains(driver).key_down(Keys.ARROW_DOWN).perform()
ActionChains(driver).key_up(Keys.ARROW_DOWN).perform()
第三种方法(找到“滚动列表”中的最后一个元素并滚动到其视图以强制滚动):
posts = driver.find_elements_by_css_selector("div.threadGrid")
driver.execute_script("arguments[0].scrollIntoView();", posts[-1])
到目前为止没有任何效果,有人知道是否有其他方法或我在哪里出错了吗?
【问题讨论】:
-
你有关于页面有多少总数据的信息吗?
-
你想要多少卷轴?或者你想收集多少元素?你想什么时候停止滚动?而是要在哪里停止滚动?
-
@DebanjanB 基本上我想滚动直到网址为mydealz.de/?page=3
标签: python selenium web-scraping phantomjs