PythonでWeb操作を自動化できる強力なライブラリ「Playwright」では、ページを操作する前に必ず「新しいページ(タブ)」を開く必要があります。
そのためによく使われるのが .new_page()
というメソッドです。
この記事では、.new_page()
がどういう働きをするのか、どんな場面で使うのかを、初心者にもわかりやすく解説します。
.new_page() は何をしている?
Playwrightでは、まず browser
や browser_context
を作ったあと、その中で新しいページ(ブラウザのタブのようなもの)を作る必要があります。
このときに使うのが .new_page()
です。
「ページを開く=.new_page()」と覚えておくとよいでしょう。
たとえば、次のようなときに使います:
- Webサイトを開いて情報を取得したいとき
- 複数ページを並行して操作したいとき
- 新しいセッション(コンテキスト)内で1つ目のページを開きたいとき
具体例①:単純にページを開いてタイトルを取得する
指定したURLにアクセスし、ページのタイトルを取得します。
コード例
1 2 3 4 5 6 7 8 9 |
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=True) page = browser.new_page() page.goto("https://example.com") print(page.title()) browser.close() |
browser.new_page()
で新しいページ(タブ)を開く.goto()
でそのページにURLを指定してアクセス.title()
でページタイトルを取得
という流れになります。
具体例②:複数ページを同時に開いて別々に処理
複数のWebページを独立して操作したい場合、それぞれ .new_page()
で開けばOKです。
コード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=True) page1 = browser.new_page() page2 = browser.new_page() page1.goto("https://example.com") page2.goto("https://www.python.org") print("Page1:", page1.title()) print("Page2:", page2.title()) browser.close() |
それぞれの .new_page()
で開いたタブが、独立して動作します。
具体例③:.new_context() と組み合わせて完全に分離されたページを作る
.new_page()
は browser
だけでなく、browser_context
(=別セッション)でも使えます。
異なるログイン状態を切り分けたいときなどに便利です。
コード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=True) context1 = browser.new_context() context2 = browser.new_context() page1 = context1.new_page() page2 = context2.new_page() page1.goto("https://example.com") page2.goto("https://www.python.org") print("Page1:", page1.title()) print("Page2:", page2.title()) browser.close() |
まとめ
.new_page()
は、Playwrightで新しいページ(タブ)を開くための基本メソッドです。
使い方のポイントは以下の通り:
browser.new_page()
は、最初のページを開くときに使う.goto()
と組み合わせてWebページにアクセスできる- 複数ページを同時に扱いたいときは、
.new_page()
を複数回呼べばOK .new_context().new_page()
を使えば、セッションを完全に分けられる
Playwrightを使いこなすうえで、.new_page()
は必ず登場する基本機能なので、まずはしっかり使い方を押さえておきましょう。