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

PHPz
リリース: 2024-08-23 16:30:37
オリジナル
944 人が閲覧しました

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 ページをクローリングするときにそれを回避する方法です。もちろん、上記の例を通じて実際の操作を練習することもできます。

以上がPython 動的 Web スクレイピングの例: Selenium と Webdriver のアプリケーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!