Pythonでplaywrightを用いてWebブラウザを起動し指定されたWebサイトを開く

Pythonでplaywrightを用いてWebブラウザを起動し指定されたWebサイトを開いてみます。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■playwrightを用いてWebブラウザを起動し指定されたWebサイト開く

では、早速、playwrightを用いてWebブラウザを起動し指定されたWebサイト開くスクリプトを書いていきます。

■コード

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    page.goto("https://www.yahoo.co.jp/")
    print(page.title())
    browser.close

今回は、「from import」を用いて、playwright.sync_apiのsync_playwrightを呼び出します。

その後に、with構文を用いて処理を行います。処理の内容は、chromiuのブラウザを用いブラウザを起動。起動後、goto()で指定したWebサイトにアクセスしページを開き、title()でWebサイトのタイトルを取得し、print()でタイトルを取得します。後、起動したWebブラウザを閉じます。

なお、今回はYahoo!Japanのページを指定しています。

■実行・検証

このスクリプトを「web_auto.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

Traceback (most recent call last):
  File "web_auto.py", line 4, in 
    browser = p.chromium.launch()
  File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\playwright\sync_api\_generated.py", line 11345, in launch
    self._sync(
  File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\playwright\_impl\_sync_base.py", line 111, in _sync
    return task.result()
  File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\playwright\_impl\_browser_type.py", line 88, in launch
    return from_channel(await self._channel.send("launch", params))
  File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\playwright\_impl\_connection.py", line 39, in send
    return await self.inner_send(method, params, False)
  File "C:\Users\user_\AppData\Roaming\Python\Python38\site-packages\playwright\_impl\_connection.py", line 63, in inner_send
    result = next(iter(done)).result()
playwright._impl._api_types.Error: Executable doesn't exist at C:\Users\user_\AppData\Local\ms-playwright\chromium-939194\chrome-win\chrome.exe
╔═════════════════════════════════════════════════════════════════════════╗
║ Looks like Playwright Test or Playwright was just installed or updated. ║
║ Please run the following command to download new browsers:              ║
║                                                                         ║
║     playwright install                                                  ║
║                                                                         ║
║ <3 Playwright Team                                                      ║
╚═════════════════════════════════════════════════════════════════════════╝

実行してみると、「playwright._impl._api_types.Error」というエラーが発生しました。内容を確認してみると、「Executable doesn’t exist(実行可能ファイルが存在しません)」ということで、ディレクトリを確認してみると、たしかに「ms-playwright」というフォルダが生成されておらず、中身のファイルも見当たりません。

このエラーの原因を調べてみると、chromiumがインストールされていないことがわかりました。なので、インストールするために、コマンドプロンプトを起動。

playwright install chromium

上記のコマンドを入力し、Enterキーを押します。

Downloading Playwright build of chromium v939194 - 101.8 Mb [====================] 100% 0.0s
Playwright build of chromium v939194 downloaded to C:\Users\user_\AppData\Local\ms-playwright\chromium-939194
Downloading Playwright build of ffmpeg v1006 - 1.4 Mb [====================] 100% 0.0s
Playwright build of ffmpeg v1006 downloaded to C:\Users\user_\AppData\Local\ms-playwright\ffmpeg-1006

Enterキーを押すと、インストールが開始され、しばらくすると完了します。

完了後、再度「web_auto.py」を実行してみます。

実行してみると、今度はplaywrightを用いて、Webブラウザを起動し、指定したWebサイトのタイトルを取得し、出力させることができました。

コメント

タイトルとURLをコピーしました