前提
ヘッドレスブラウザのpyppeteerを使って、ブラウザ画面のスクリーンショットを保存するプログラムを書いてます。まず、Windows環境で動作するプログラムを作成、正常に動作することを確認しました。これをLinux環境へ移植するところではまっています。
具体的にはプログラムを実行後、ブラウザ起動のところで30秒程度待ちがあって、「pyppeteer.errors.BrowserError: Browser closed unexpectedly:」
ろいうエラーが出力されます。
移植プログラムの前にシンプルな検証用のコードで実行しても同様です。
発生している問題・エラーメッセージ
[gss1usr@KBPBTH02 pyppeteer]$ python3 test1.py Traceback (most recent call last): File "test1.py", line 11, in <module> asyncio.get_event_loop().run_until_complete(main()) File "/usr/lib64/python3.6/asyncio/base_events.py", line 484, in run_until_complete return future.result() File "test1.py", line 5, in main browser = await launch(headless=True) File "/usr/local/lib/python3.6/site-packages/pyppeteer/launcher.py", line 307, in launch return await Launcher(options, **kwargs).launch() File "/usr/local/lib/python3.6/site-packages/pyppeteer/launcher.py", line 168, in launch self.browserWSEndpoint = get_ws_endpoint(self.url) File "/usr/local/lib/python3.6/site-packages/pyppeteer/launcher.py", line 227, in get_ws_endpoint raise BrowserError('Browser closed unexpectedly:\n') pyppeteer.errors.BrowserError: Browser closed unexpectedly:
該当のソースコード
以下は検証用のシンプルなコードです。
python
1import asyncio 2from pyppeteer import launch 3 4async def main(): 5 browser = await launch(headless=True) 6 page = await browser.newPage() 7 # await page.goto('http://www.example.com') 8 await page.goto('http://www.google.co.jp') 9 print(await page.content(), flush=True) 10 11asyncio.get_event_loop().run_until_complete(main())
試したこと
ネットで調べて以下のことを行いました。
1.不足しているライブラリの追加インストール
最初、「cannot open shared object file」というエラーも出ていたので
https://rinoguchi.net/2020/08/pyppeteer-manual.html
を参考にして依存ライブラリのインストールを行いました。
ldd /home/gss1usr/.local/share/pyppeteer/local-chromium/588429/chrome-linux/chrome | grep 'not found'
というコマンドでも、見つからないライブラリは出ないので、この問題は解消されたと思います。
2.起動オプション設定
ネットでの情報を参考にに以下のオプション(Chromeのサンドボックスを有効にしない)を追加するコードに修正して実行してみましたが、状況は変わりません。
「browser = await launch(options={'args': ['--no-sandbox']})」
3.インターネット接続確認
Linuxサーバーのネットワーク設定関係の問題も疑い、curlコマンドで
curl www.google.co.jp
とすると、応答結果が返ってきました。
これ以上、何を調べれば良いのか、分からないので、アドバイスを頂きたく。よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
OS:Red Hat Enterprise Linux8
Python:version3.6
pyppeteer:version0.2.6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。