使用Selenium WebDriver 檢測無限滾動的頁面載入完成
從採用無限滾動的頁面中抓取資料時,確定新內容何時已完成完成載入對於高效執行至關重要。傳統的方法,滾動到底部並等待固定的時間,可能會很浪費。
為了解決這個問題,Selenium WebDriver 提供了更精確地偵測頁面載入完成的方法。 WebDriverWait 提供了一種等待特定元素出現在頁面上的機制,表明有新資料可用:
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By browser = webdriver.Firefox() browser.get("url") delay = 3 # seconds try: myElem = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'IdOfMyElement'))) print("Page is ready!") except TimeoutException: print("Loading took too much time!")
瀏覽器等待指定 ID 的元素出現後再繼續,確保新內容已載入。透過利用這種機制,腳本可以向下捲動,檢測元素是否存在,並在頁面載入完成後繼續。這種方法優化了抓取過程,減少了不必要的等待時間。
以上是Selenium WebDriver 如何在無限滾動場景下高效能偵測頁面載入完成?的詳細內容。更多資訊請關注PHP中文網其他相關文章!