「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python 動的 Web スクレイピングの例: Selenium と Webdriver のアプリケーション

Python 動的 Web スクレイピングの例: Selenium と Webdriver のアプリケーション

2024 年 9 月 2 日に公開
ブラウズ:832

Python dynamic web scraping example: application of selenium and webdriver

動的 Web スクレイピングでは通常、HTTP リクエストを処理するリクエスト、ブラウザの動作をシミュレートする Selenium、または pyppeteer などの Python ライブラリを使用します。次の記事ではセレンの使用に焦点を当てます。

セレンの簡単な紹介

selenium は Web アプリケーションをテストするためのツールですが、特に JavaScript によって動的に生成された Web コンテンツをスクラップする必要がある場合に、Web スクレイピングにもよく使用されます。 Selenium は、クリック、テキストの入力、Web ページ要素の取得など、ブラウザーでのユーザーの動作をシミュレートできます。

Python の動的 Web スクレイピングの例

まず、Selenium がインストールされていることを確認してください。そうでない場合は、pip:
経由でインストールできます。

pip install selenium

対応するブラウザの WebDriver もダウンロードする必要があります。 Chrome ブラウザを使用すると仮定すると、ChromeDriver をダウンロードし、そのパスがシステム環境変数に追加されていることを確認する必要があります。または、コード内でそのパスを直接指定することもできます。 ‌

Web ページのタイトルを取得する簡単な例を次に示します:‌

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Setting up webdriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()

このスクリプトは example.com を開き、そのタイトルを取得して出力します。 ‌

webdriver_manager は、WebDriver のバージョンを自動的に管理するサードパーティのライブラリであることに注意してください。使用したくない場合は、WebDriver を手動でダウンロードしてパスを指定することもできます。 ‌

動的 Web ページには、JavaScript でレンダリングされたコンテンツが含まれる場合があります。 Selenium は、これらの要素が読み込まれるのを待ってから動作するため、このような Web ページの処理に非常に適しています。 ‌

Pythonで動的Webページをスクレイピングするときにプロキシを設定する

Python を使用して動的 Web ページをクロールする場合、プロキシを使用することがよくあります。プロキシを使用すると、一方では多くの障害が回避され、他方では作業効率が向上します。

上記ではSeleniumのインストールについて紹介しました。さらに、対応するブラウザの WebDriver をダウンロードし、そのパスがシステムの環境変数に追加されていることを確認する必要もあります。または、コード内でそのパスを直接指定することもできます。
上記の手順を完了すると、プロキシを設定して動的 Web ページをスクラップできます:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# Set Chrome options
chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://your_proxy_ip:port')

# Specify the WebDriver path (if you have added the WebDriver path to the system environment variables, you can skip this step)
# driver_path = 'path/to/your/chromedriver'
# driver = webdriver.Chrome(executable_path=driver_path, options=chrome_options)

# If WebDriver path is not specified, the default path is used (make sure you have added WebDriver to your system environment variables)
driver = webdriver.Chrome(options=chrome_options)

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()

この例では、--proxy-server=http://your_proxy_ip:port はプロキシを構成するためのパラメータです。your_proxy_ip と port を、実際に使用するプロキシ サーバーの IP アドレスとポート番号に置き換える必要があります。使用

プロキシ サーバーで認証が必要な場合は、次の形式を使用できます:

chrome_options.add_argument('--proxy-server=http://username:password@your_proxy_ip:port')

ここで、ユーザー名とパスワードはプロキシ サーバーのユーザー名とパスワードです。 ‌

上記のコードを実行すると、selenium は設定されたプロキシ サーバーを介してターゲット Web ページにアクセスし、Web ページのタイトルを出力します。 ‌
ChromeDriver へのパスを指定するには?
ChromeDriver は Selenium WebDriver の一部です。 WebDriver API を通じて Chrome ブラウザと対話し、自動テストや Web クローラーなどの機能を実装します。 ‌
ChromeDriver のパスの指定には、主に環境変数の設定が含まれます。 ‌具体的な手順は次のとおりです: ‌
1. Chrome
のインストール場所を探す デスクトップ上の Google Chrome ショートカットを右クリックし、[ファイルの場所を開く] を選択すると、このファイルを見つけることができます。 ‌
2.システム環境変数Path
にChromeのインストールパスを追加します。 これにより、システムは任意の場所にある ChromeDriver を認識できるようになります。 ‌
3. ChromeDriver
をダウンロードして解凍します 必ず Chrome ブラウザのバージョンと一致する ChromeDriver をダウンロードし、exe プログラムに解凍してください。 ‌
4. ChromeDriverのexeファイルをChromeのインストールパスにコピー
このようにして、ChromeDriver を使用する必要がある場合、システムは自動的にそれを認識して呼び出すことができます

上記は、Python 動的 Web クローリングにおける Selenium と Webdriver の適用と、Web ページをクローリングするときにそれを回避する方法です。もちろん、上記の例を通じて実際の操作を練習することもできます。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/lewis_kerr_2d0d4c5b886b02/python-dynamic-web-scraping-example-application-of-selenium-and-webdriver-3330?1 侵害がある場合は、study_golang@163 までご連絡ください。 .comを削除してください
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3