質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

819閲覧

pyppeteerで「対象のコンピューターによって拒否されたため、接続できませんでした。」が発生。(Edgeかつuser-data-dir指定時のみ)

g_c

総合スコア19

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/09/07 15:14

編集2022/09/08 23:10

行いたいこと

pyppeteerでuser-data-dir指定してブラウザ(Chrome、Edge)操作を行いたいです。

発生している問題・エラーメッセージ

Edgeでuser-data-dirを指定した場合、pyppeteer(launcher.pyのget_ws_endpoint)で以下のエラーが発生し、launchで「pyppeteer.errors.BrowserError: Browser closed unexpectedly:」が発生してしまいます。

URLError(ConnectionRefusedError(10061, '対象のコンピューターによって拒否されたため、接続できませんでした。', None, 10061, None))

python

1def get_ws_endpoint(url) -> str: 2 url = url + '/json/version' 3 timeout = time.time() + 30 4 while (True): 5 if time.time() > timeout: 6 raise BrowserError('Browser closed unexpectedly:\n') 7 try: 8 with urlopen(url) as f: #★Edgeのuser-data-dir指定時にエラー発生 9 data = json.loads(f.read().decode()) 10 break 11 except (URLError, HTTPException) as e: 12 print(repr(e)) #★エラー内容の確認 13 # pass 14 time.sleep(0.1) 15 16 return data['webSocketDebuggerUrl']

該当のソースコード

python

1import asyncio 2 3from pyppeteer import launch 4 5 6async def main(): 7 option = { 8 'headless': False, 9 'executablePath': r'Chrome or Edgeのexe', 10 'userDataDir': r'Chrome or Edgeのuser-data-dir' 11 } 12 browser = await launch(option) 13 pages = await browser.pages() 14 page = pages[0] 15 16 await page.goto('https://www.yahoo.co.jp/', { 17 'waitUntil': 'load' 18 }) 19 20 await asyncio.sleep(5) 21 await browser.close() 22 23if __name__ == '__main__': 24 asyncio.get_event_loop().run_until_complete(main()) 25 26

試したこと

Chrome、Edgeでuser-data-dirの指定あり/なしを試しましたが以下の通りでした。
【OK】Chrome かつ user-data-dir指定あり
【OK】Chrome かつ user-data-dir指定なし
【NG】Edge かつ user-data-dir指定あり
【OK】Edge かつ user-data-dir指定なし

また、optionに 「'args': ['--profile-directory=Default']」を追加してみましたが変わらずでした。

補足情報(FW/ツールのバージョンなど)

Python 3.9
pyppeteer 1.0.2
Microsoft Edge バージョン 105.0.1343.27 (公式ビルド) (64 ビット)
Google Chrome バージョン: 105.0.5195.102(Official Build) (64 ビット)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。
「edge://settings/system」のスタートアップ ブーストがONになっており、
Edgeを終了してもプロセスが残っているのが原因でした。
上記設定をOFFに変更し、Edgeのプロセスがない状態で「該当のソースコード」を実行したら
問題ありませんでした。

投稿2022/09/08 14:10

g_c

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問