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サイトのタイトルを取得し、出力させることができました。
コメント