我尝试用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获取所有数据
答案 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);")