ホームページ >バックエンド開発 >Python チュートリアル >Python の Selenium WebDriver を使用して、Web ページ (無限スクロール) が完全に読み込まれたことを効率的に検出するにはどうすればよいですか?

Python の Selenium WebDriver を使用して、Web ページ (無限スクロール) が完全に読み込まれたことを効率的に検出するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-16 20:28:15139ブラウズ

How Can I Efficiently Detect When a Web Page (with Infinite Scrolling) Has Fully Loaded Using Selenium WebDriver in Python?

Python 用 Selenium WebDriver を使用してページの読み込みを待つ方法

無限スクロールが実装された Web ページからデータをスクレイピングする場合、次のことが重要です。ページが新しいコンテンツを完全に読み込んだときを効率的に検出します。この記事では、各スクロール後に一定の時間待機する場合と比較して、より時間効率の高いアプローチについて説明します。

デフォルトのページ読み込みメカニズム

デフォルトでは、Selenium WebDriver の .get () メソッドは、ページが完全にロードされるまで待機します。ただし、これはフレーム内または AJAX リクエスト経由の読み込みを考慮していません。

特定の要素に対する WebDriverWait の使用

特定の要素がページでは、expected_conditions を指定して 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

delay = 3 # seconds
driver = webdriver.Firefox()
driver.get("url")
try:
    myElem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.ID, 'id-of-element')))
    print("Page is ready!")
except TimeoutException:
    print("Loading took too much time!")

考慮事項

WebDriverWait は、指定された要素または条件が true になるのを待つだけであることに注意してください。追加の要素または条件を待機している場合は、カスタム コードを使用してページの読み込み完了を検出する必要がある場合があります。

以上がPython の Selenium WebDriver を使用して、Web ページ (無限スクロール) が完全に読み込まれたことを効率的に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。