Web クローラーは、Web ページ上のデータを自動的に取得できる、Python プログラミングにおける非常に便利な技術です。
Selenium は、ボタンのクリックやフォームへの入力など、ブラウザーでのユーザー操作をシミュレートできる自動テスト ツールです。 BeautifulSoup やリクエストなどの一般的に使用されるクローラー ライブラリとは異なり、Selenium は JavaScript によって動的に読み込まれるコンテンツを処理できるため、ユーザー インタラクションをシミュレートして取得する必要があるデータには非常に適しています。
Selenium を使用するには、まずインストールする必要があります。 pip コマンドを使用して、Selenium ライブラリをインストールできます。
pip install selenium
インストールが完了したら、Selenium で動作するブラウザ ドライバもダウンロードする必要があります。この記事では Chrome ブラウザを例に説明していますので、Chrome ブラウザのバージョンに応じた ChromeDriver をダウンロードする必要があります。ダウンロード アドレス: sites.google.com/a/chromium.…
ダウンロードして解凍した後、chromedriver.exe ファイルを適切な場所に置き、その場所を覚えておきます。後で必要になります。コード。
以下は簡単な例で、Selenium を使用して Web ページをクロールし、ページ タイトルを出力します。
from selenium import webdriver # 指定chromedriver.exe的路径 driver_path = r"C:\path\to\chromedriver.exe" # 创建一个WebDriver实例,指定使用Chrome浏览器 driver = webdriver.Chrome(driver_path) # 访问目标网站 driver.get("https://www.example.com") # 获取网页标题 page_title = driver.title print("Page Title:", page_title) # 关闭浏览器 driver.quit()
Selenium は、ボタンのクリック、フォームへの入力など、ブラウザーでのさまざまなユーザー操作をシミュレートできます。以下は、Selenium を使用して Web サイトでログイン操作を実行する例です。
from selenium import webdriver from selenium.webdriver.common.keys import Keys driver_path = r"C:\path\to\chromedriver.exe" driver = webdriver.Chrome(driver_path) driver.get("https://www.example.com/login") # 定位用户名和密码输入框 username_input = driver.find_element_by_name("username") password_input = driver.find_element_by_name("password") # 输入用户名和密码 username_input.send_keys("your_username") password_input.send_keys("your_password") # 模拟点击登录按钮 login_button = driver.find_element_by_xpath("//button[@type='submit']") login_button.click() # 其他操作... # 关闭浏览器 driver.quit()
Selenium のさまざまな機能を組み合わせることで、さまざまな Web サイト上のデータをクロールする強力な Web クローラーを作成できます。ただし、クロールする場合は、対象の Web サイトの robots.txt 規制に従い、Web サイトのデータ スクレイピング ポリシーを尊重する必要があることに注意してください。さらに、クロールが頻繁すぎると Web サイトに負担がかかり、クロール防止メカニズムが作動する可能性もあるため、クロール速度を合理的に制御することをお勧めします。
動的に読み込まれるコンテンツを含む一部の Web サイトでは、Selenium が提供する明示的待機メカニズムと暗黙的待機メカニズムを使用して、Web ページ上の要素が確実にロードされるようにすることができます。ロードされました。
明示的な待機とは、特定の待機条件を設定し、指定された時間内に要素が条件を満たすのを待つことを指します。
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver_path = r"C:\path\to\chromedriver.exe" driver = webdriver.Chrome(driver_path) driver.get("https://www.example.com/dynamic-content") # 等待指定元素出现,最多等待10秒 element = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "dynamic-element-id")) ) # 操作该元素... driver.quit()
暗黙的な待機とは、グローバルな待機時間を設定することで、この時間内に要素が出現しない場合、例外がスローされます。
rree以上がSelenium を使用して Python で Web ページ データをクロールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。