Selenium WebDriver for Python を使用して Web スクレイピングの効率を高めるためにページの読み込み完了を検出する方法
無限スクロールを実装するページの Web スクレイピングを最適化するには、後続のスクロールをトリガーするには、下にスクロールするたびにページの読み込み完了を検出することが重要です。これにより、不必要な待機期間が回避され、時間効率が確保されます。
WebDriverWait を使用して特定の要素の存在を検出する
特定のケースでは、Selenium WebDriver の WebDriverWait クラスを使用して待機できるようになります。下にスクロールするたびに特定の要素がページに表示されます。その方法は次のとおりです。
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By delay = 3 # Seconds to wait element_id = 'IdOfMyElement' # Element to wait for try: element = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.ID, element_id))) print("Page has loaded the new contents!") except TimeoutException: print("Loading took too long!")
特定の要素が存在するのを待つことで、次の下スクロールを開始する前に、ページが新しいコンテンツの読み込みを完了したことを確認できます。
考慮事項: Webdriver のデフォルトの動作
WebDriver は待機することに注意することが重要です。 .get() メソッドの使用後にデフォルトでロードされるページ。ただし、このデフォルトの動作は、フレーム内のロードや AJAX リクエストの待機には拡張されません。 WebDriverWait クラスは、上記の例に示すように、待機のための特定の条件を指定する柔軟性を提供します。
以上がWeb スクレイピング用の Selenium を使用してページ読み込みの完了を効率的に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。