所以我使用 selenium/phantomjs 中最基本的方法来执行向下滚动操作。 代码看起来一切都很好,但行不通。 我尝试打印“document.body.scrollHeight”,每次滚动后它都保持不变。 (例如高度保持在10532)
我正在浏览某个人的 Twitter 页面,例如“twitter.com/XXXXX”
任何人都可以给我一个提示,告诉我我可以在这里做什么吗?
我使用的网络驱动程序是 phantomjs
代码如下:
def getfullpage(url):
print "getting fullpage..."
driver.get(url)
time.sleep(2)
reloads = 3000
pause = 0
driver.save_screenshot("what'shappening.jpg")
for times in range(reloads):
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
time.sleep(pause)
newheight = driver.execute_script("return document.body.scrollHeight")
print newheight
page = driver.page_source.encode("utf-8","ignore")
return page
最佳答案
我会等待滚动高度增加并使用document.documentElement.scrollHeight
来代替:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.PhantomJS()
wait = WebDriverWait(driver, 20)
driver.get("https://twitter.com/barackobama")
time.sleep(1)
# scroll the height
height = driver.execute_script("var h=document.documentElement.scrollHeight; window.scrollTo(0, h); return h;")
# wait for the scroll height to increase
wait.until(lambda drv: drv.execute_script("return document.documentElement.scrollHeight;") > height)
# display the final scroll height
print driver.execute_script("return document.documentElement.scrollHeight;")
关于javascript - phantomjs 不使用 window.scollTo 向下滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36610829/