最近WebテストやWeb操作の自動化やスクレイピングでPlaywrightを利用しています。コーディングしている際に何度も検索をして確認しているのでこちらにチートシートを作成してこちらの1ページで全部確認できるようにしていきます。(基本、新しいPlaywrightのコーディングが分かったら都度追加していく)
言語は一番使っているPythonで記述します。
playwright と undetected_playwright の違い
以下のようにundetected_playwrightライブラリを利用できます。
from undetected_playwright.async_api import async_playwright
Playwright
Microsoft 製の公式ブラウザ自動化ライブラリです。今でスクレイピングする際は Selenium を利用していましたが、Playwright はより新しく、高速で安定した自動操作が可能です。playwright.async_api を使えば非同期(async/await)でブラウザを操作できます。
undetected_playwright
bot 検知を回避する工夫 を加えた非公式ライブラリです。通常の Playwright だと「自動操作ツール」と検知されて弾かれるサイトがありますが、undetected_playwright はそれを回避しやすくしています。とは言っても動きが機械的ならすぐにツールだと検知されます。特に魔法のようにすごいことをやっているわけではありません。
コード分析
特定のURLのページに移動する場合
以下のように特定のページに移動したい場合があります。
await page.goto("https://www.xxxxxx.co.jp/login.html", wait_until="domcontentloaded")
その場合、確実に表示が完了してから次の操作に移りたい場合は、wait_until=”domcontentloaded を入れることができます。
wait_until=”domcontentloaded” は、DOM構造が読み込まれた時点で待機を終えます。更に画像やJavaScriptのロードは待ちません。つまり「最低限のHTMLができあがった瞬間」に処理を進められます。JavaScriptで作成されたページや画像のロードを待たなければいけないページでは利用できませんが、シンプルなログインページなどでは利用できます。
コメント