2
我已經寫在python腳本從網頁解析某些名稱收集所有的商店名稱。該網頁中的可用項目不會一次全部顯示,而是需要滾動到最下方纔能讓網頁發佈更多項目,並且再次滾動更多項目,直到所有項目都可見爲止。問題是項目不在身體內,這就是爲什麼driver.execute_script("return document.body.scrollHeight;")
這個命令不起作用(IMO)。它位於滑動容器的左側區域。我怎樣才能到達該容器的底部,並解析這個網頁的名字?除了控制延遲加載外,我寫了幾乎所有的代碼。我附上一張圖片,告訴你我想通過將它稱爲滑動容器來表達什麼意思。無法從網頁
鏈接到網頁:Link
這是我到目前爲止已經試過:
from selenium import webdriver; import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
driver.get("replace_the_above_link")
check_height = driver.execute_script("return document.body.scrollHeight;")
while True:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(3)
height = driver.execute_script("return document.body.scrollHeight;")
if height == check_height:
break
check_height = height
for item in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".select_list h2 a"))):
print(item.text)
driver.quit()
這是那個盒子的包含項目形象:Click Here
目前我刮刀解析頁面加載時可見的項目。
感謝安德森先生,您的干預和腳本。再加一個吧。無論如何,當我執行你的代碼時,它會產生與我第一次沒有滾動的結果相同的結果。我應該在while循環中的任何位置放置硬編碼延遲嗎?再次感謝您的回答先生。 – SIM
嗯..這很奇怪...你是否完全按照我的回答或修改的方式使用它? – Andersson
不,先生,沒有修改。我幾乎不敢這麼做。我已經執行了它的確如此。 – SIM