gpt4 book ai didi

python - 使用 Python/PhantomJS/Selenium 滚动无限页面

转载 作者:行者123 更新时间:2023-12-01 02:22:24 26 4
gpt4 key购买 nike

我正在尝试抓取这个(无限)页面(www.mydealz.de),但我无法让我的网络驱动程序向下滚动页面。我使用 Python (3.5)、Selenium (3.6) 和 PhantomJS。我已经尝试了几种方法,但网络驱动程序只是不会滚动 - 它只是给了我第一页。

第一种方法(通常的滚动方法):

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()

第三种方法(找到“滚动列表”中的最后一个元素并滚动到其 View 以强制滚动):

posts = driver.find_elements_by_css_selector("div.threadGrid")
driver.execute_script("arguments[0].scrollIntoView();", posts[-1])

到目前为止没有任何效果,有人知道是否有其他方法或者我在哪里犯了错误?

最佳答案

要滚动网页直到网址为 mydealz.de/?page=3,您可以使用以下代码块:

from selenium import webdriver

driver = webdriver.PhantomJS(executable_path=r'C:\\Utility\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe')
driver.set_window_size(1400,1000)
driver.get("https://www.mydealz.de")
while ("3" not in driver.current_url) :
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
print(driver.current_url)
driver.quit()

控制台输出:

https://www.mydealz.de/?page=3

关于python - 使用 Python/PhantomJS/Selenium 滚动无限页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47832281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com