実現したいこと
PythonでSeleniumを利用したスクレイピングを実装しようと考えています。
スクレイピング時に保存しているユーザー名やパスワードを利用したいため、Profileを指定して起動します。
動かしてみるとGoogleChrome自体は起動しますが、下記のエラーで該当のURLへアクセスできません。
どなたかご教授いただけないでしょうか。
また、以下の内容では正常に動きました。
- optionsを適用しない
- Profileを指定しない
エラー抜粋
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited normally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location C:/Program Files/Google/Chrome/Application/chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
発生している問題・エラーメッセージ
処理を開始します �����̃u���E�U �Z�b�V�����ŊJ���Ă��܂��B Traceback (most recent call last): File "d:\Docs\Python\mercariSeleniumAutomation\Setting.py", line 16, in <module> driver = webdriver.Chrome(options=options) File "C:\Users\userName\anaconda3\envs\mercari\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 81, in __init__ super().__init__( File "C:\Users\userName\anaconda3\envs\mercari\lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 106, in __init__ super().__init__( File "C:\Users\userName\anaconda3\envs\mercari\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 288, in __init__ self.start_session(capabilities, browser_profile) File "C:\Users\userName\anaconda3\envs\mercari\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 381, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "C:\Users\userName\anaconda3\envs\mercari\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 444, in execute self.error_handler.check_response(response) File "C:\Users\userName\anaconda3\envs\mercari\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 249, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited normally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location C:/Program Files/Google/Chrome/Application/chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: Backtrace: (No symbol) [0x005BF243] (No symbol) [0x00547FD1] (No symbol) [0x0043D04D] (No symbol) [0x0045C24E] (No symbol) [0x004582E9] (No symbol) [0x0048F056] (No symbol) [0x0048EB2A] (No symbol) [0x00488386] (No symbol) [0x0046163C] (No symbol) [0x0046269D] GetHandleVerifier [0x00859A22+2655074] GetHandleVerifier [0x0084CA24+2601828] GetHandleVerifier [0x00668C0A+619850] GetHandleVerifier [0x00667830+614768] (No symbol) [0x005505FC] (No symbol) [0x00555968] (No symbol) [0x00555A55] (No symbol) [0x0056051B] BaseThreadInitThunk [0x74D06939+25] RtlGetFullPathName_UEx [0x76FD8FD2+1218] RtlGetFullPathName_UEx [0x76FD8F9D+1165]
該当のソースコード
python
1from selenium import webdriver 2from selenium.webdriver.chrome.options import Options 3import chromedriver_binary 4 5options = Options() 6PROFILE_PATH = r'C:/Users/userName/AppData/Local/Google/Chrome/User Data/' 7PROFILE_DIR = 'Profile 2' 8options.add_argument('--user-data-dir=' + PROFILE_PATH) 9options.add_argument('--profile-directory=' + PROFILE_DIR) 10# options.add_argument('--headless') 11options.add_argument("--no-sandbox") 12options.binary_location = r"C:/Program Files/Google/Chrome/Application/chrome.exe" 13 14print('処理を開始します') 15 16driver = webdriver.Chrome(options=options) 17 18print('接続しました') 19 20driver.get('https://jp.mercari.com/') 21driver.quit 22
試したこと
下記のオプションを追加
python
1options.add_argument('--headless') 2options.add_argument("--no-sandbox")
これらを適用すれば問題なく動きますが、実際に動きを確認したいため--headlessは望ましくないです。
補足情報(FW/ツールのバージョンなど)
Google Chrome バージョン
108.0.5359.125
chromedriver バージョン
108.0.5359.71
環境構築はAnacondaを利用しました。
コードを実行する際、該当のプロファイルを使用したChromeは起動していません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/26 22:46
2022/12/27 01:27
2022/12/27 11:58
2022/12/27 12:40
2022/12/27 13:07
2022/12/27 13:38 編集
2022/12/27 14:39 編集
2022/12/27 21:56
2022/12/28 11:43
2022/12/30 03:47
2022/12/30 03:54
2022/12/30 10:46