Selenium PhantomJS向下滚动

时间:2017-06-06 02:38:44

标签: python selenium scroll phantomjs

我尝试用selenium向下滚动,但我使用webdriver PhantomJS。我试过selenium测试javascript instagram。如您所知,在Instagram上有“加载更多”按钮,点击“加载更多”按钮后,我们不必再次点击,因为它会自动刷新,它会显示更多图像。

我试过这样:

driver.find_element_by_xpath("//a[@class='_8ioip _glw1t']").click()
time.sleep(5)

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(3.6)

实际上这段代码是有效的,但不是真的有用,我的意思是“time.sleep”发生了一些奇怪的事情。如果我给2,结果很少,如果我给3结果差不多,但如果我给5,结果就像我给2。

问题是,如何让Sch获取所有数据

1 个答案:

答案 0 :(得分:1)

类“加载更多”按钮似乎已经改变。 你的代码是正确的,试试这个xpath:

//a[@class='_8imhp _glz1g']

或尝试按文字内容找到按钮:

//*/div/a[text()[contains(.,'Load more')]]

然后点击按钮向下滚动..所以你的代码应该是:

driver.get('https://www.instagram.com/explore/tags/whatever/')
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
driver.find_element_by_xpath("//*[text()[contains(.,'Load more')]]").click()
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")