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 中国語 Web サイトの他の関連記事を参照してください。