我正在尝试搜索另一种正确滚动网页的方法。我需要滚动网页的原因是因为75%的数据是延迟加载的。这意味着在我滚动浏览之前它不会显示出来。我目前正在使用如下的慢速方法
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/1.8);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/1.9);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.0);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.1);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.2);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.3);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.5);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.6);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.7);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.8);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/2.9);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.0);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.1);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.2);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.3);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.4);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.5);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.7);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.8);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.2);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.3);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.5);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.7);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.9);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/5.2);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/5.1);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/5.8);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.7);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/50);")
time.sleep(0.2)
有关滚动的任何建议。提前谢谢。
答案 0 :(得分:4)
使用Selenium滚动的一个不错的方法是向正文发送空格键:
background = browser.find_element_by_css_selector("body")
for i in range(5):
background.send_keys(Keys.SPACE)
time.sleep(1)
如果需要,您可以使用Shift +空格键的相似代码向上滚动。
顺便说一句,使用range
这样循环特定次数可能是一个坏主意......最好循环直到某些特定元素可见,如果可能的话。这仅仅是为了举例。