Web情報収集のためのスクレイピング技術をPowerShellとGoogle Chromeを使って効率的に行う方法を紹介します。
事前準備
まず、Selenium WebDriverとChromeDriverをインストールする必要があります。
Selenium のインストール
- PowerShellを管理者権限で開きます。
- Selenium WebDriverをインストールする。以下のコマンドを実行します。
Install-Package Selenium.WebDriver
ChromeDrive rのインストール
- ChromeDriverをダウンロードしてインストールします。https://sites.google.com/chromium.org/driver/
- ダウンロードしたChromeDriverを適切な場所に配置します。
例)C:\chromedriver
PowerShellでWebスクレイピング(動的ページの読み込み)
次のコードでJavascriptなどの動的生成のページを読み込みます。
# ChromeDriverのパスを設定する
$chromeDriverPath = "C:\chromedriver\chromedriver.exe"
# ChromeDriverオプションを設定する
$options = New-Object OpenQA.Selenium.Chrome.ChromeOptions
$options.AddArgument("--disable-extensions")
# WebDriverを初期化する
$driver = New-Object OpenQA.Selenium.Chrome.ChromeDriver($chromeDriverPath, $options)
# Webページを読み込む
$driver.Navigate().GoToUrl("https://example.com")
# 現在の日付と時刻を取得する
$currentTime = Get-Date -Format "yyyy/MM/dd HH:mm:ss"
# ページをリロードして、表示されるまで待ち合わせる
$driver.Navigate().Refresh()
Start-Sleep -Seconds 120
# HTMLのIDがvalueの値を取得しテキスト変換する
$element = $driver.FindElementById("value")
$text = $element.Text
# 取得した情報の表示など
Write-Output "$currentTime $text"
$driver.Quit()
この例では、Selenium WebDriverを使用してGoogle Chromeを起動し、Webサイトから情報を取得しています。ChromeDriverのパスとChromeDriverオプションを設定した後、ChromeDriver
オブジェクトを初期化し、Webページを読み込んでいます。その後、FindElementById
メソッドを使用して、idがvalue
の要素を取得し、Text
プロパティを使用して、要素のテキストを取得しています。
以上の例を参考にして、自分がスクレイピングしたいWebサイトに合わせてコードを修正してください。