Selenium以外でブラウザを操作する方法はいくつかあります。以下に代表的な方法を紹介します。
1. Playwright
- 概要: Microsoftが開発したエンドツーエンドのテストフレームワークです。Seleniumに似ていますが、より高速で安定した操作が可能です。複数のブラウザ(Chromium, Firefox, WebKit)をサポートしています。
- 特徴: 並列テスト、ヘッドレスモード、ページ遷移の詳細な制御が可能です。
- 言語サポート: JavaScript/TypeScript、Python、Java、C#
インストール例(Python)
pip install playwright
playwright install
サンプルコード
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
page = browser.new_page()
page.goto('https://example.com')
print(page.title())
browser.close()
2. Puppeteer
- 概要: Googleが開発した、Node.js用のヘッドレスブラウザ操作ライブラリです。主にChromeやChromiumを操作するために使用されます。
- 特徴: ページのスクリーンショット、PDF作成、DOMの取得・操作などが簡単に行えます。
- 言語サポート: 主にJavaScript/TypeScript
インストール例
npm install puppeteer
サンプルコード
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.goto('https://example.com');
console.log(await page.title());
await browser.close();
})();
3. BeautifulSoup(+ requests)
- 概要: PythonのWebスクレイピング用ライブラリ。BeautifulSoup自体はブラウザを操作するものではなく、requestsと組み合わせてWebページのHTMLを取得し、操作します。直接ブラウザを操作するものではないため、JavaScriptの実行結果などは扱えません。
- 特徴: HTMLのパースと解析が容易。動的なサイトには向いていませんが、静的なサイトのデータ取得には有効です。
サンプルコード
import requests
from bs4 import BeautifulSoup
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.string)
4. HttpClientやCurlなどを利用した手動リクエスト操作
- 概要: プログラムからHTTPリクエストを送信し、Webページのデータを取得・操作します。ブラウザ操作ではなく、Webサーバーと直接やり取りするため、動的なコンテンツには向きませんが、APIや静的なページには非常に軽量かつ高速です。
- 言語サポート: ほぼすべてのプログラミング言語でサポートされています。
5. AutoIt
- 概要: Windows専用の自動化ツール。GUIアプリケーションの操作をスクリプトで自動化でき、ブラウザを操作する際にも使われることがあります。
- 特徴: キーボードやマウスの操作を模倣して、アプリケーションやブラウザの操作が可能です。
- 言語サポート: 独自のスクリプト言語
サンプルコード
Run("chrome.exe")
WinWaitActive("Google Chrome")
Send("https://example.com{ENTER}")
これらの方法は、用途や目的に応じて使い分けることができます。動的なページの操作が必要な場合は、PlaywrightやPuppeteerが適していますが、静的ページのスクレイピングであれば、BeautifulSoupやrequestsが有効です。