(Python、Seleniumともに初学者のため必要な情報が欠けている場合は追記いたします)
前提・実現したいこと
【実行環境】
OS:Windows 10 Pro (64bit)
Firefox:70.0.1 (64bit)
Python:3.6.3
Selenium:3.141.0
FirefoxでSeleniumを使用し、特定のURLからPDFファイルをダウンロードするツールを作成しています。
特定のURLにアクセス→PDFのダウンロード→ブラウザを閉じて終了、までの機能を想定しています。
発生している問題・エラーメッセージ
上記機能のうち、特定のURLにアクセス→PDFのダウンロード までは実装できていますが
ファイルのダウンロード後、ブラウザを閉じることができません。
実際にはPythonのプログラムが実行されていない(中断している)状態です。
処理が進まないため、プログラムを中止した際のメッセージです。
Traceback (most recent call last): File "demo_1.py", line 16, in <module> driver.get('https://hogehoge.pdf') File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get self.execute(Command.GET, {'url': url}) File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 319, in execute response = self.command_executor.execute(driver_command, params) File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 374, in execute return self._request(command_info[0], url, body=data) File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 397, in _request resp = self._conn.request(method, url, body=body, headers=headers) File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\request.py", line 80, in request method, url, fields=fields, headers=headers, **urlopen_kw File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\request.py", line 171, in request_encode_body return self.urlopen(method, url, **extra_kw) File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\poolmanager.py", line 330, in urlopen response = conn.urlopen(method, u.request_uri, **kw) File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connectionpool.py", line 672, in urlopen chunked=chunked, File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connectionpool.py", line 421, in _make_request six.raise_from(e, None) File "<string>", line 3, in raise_from File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\site-packages\urllib3\connectionpool.py", line 416, in _make_request httplib_response = conn.getresponse() File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 1331, in getresponse response.begin() File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 297, in begin version, status, reason = self._read_status() File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\http\client.py", line 258, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") File "C:\Users\Piyopiyo\AppData\Local\Programs\Python\Python36\lib\socket.py", line 586, in readinto return self._sock.recv_into(b) KeyboardInterrupt
該当のソースコード
Python
1from selenium import webdriver 2 3# FirefoxProfile設定 4fp = webdriver.FirefoxProfile() 5fp.set_preference("browser.download.folderList",1) 6fp.set_preference("browser.download.manager.showWhenStarting",False) 7fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf") 8# PDFファイルのダウンロード用Profile設定 9fp.set_preference("pdfjs.disabled", True) 10fp.set_preference("plugin.scan.Acrobat", "99.0") 11fp.set_preference("plugin.scan.plid.all", False) 12 13# Firefoxドライバ起動 14driver = webdriver.Firefox(firefox_profile=fp) 15# URLアクセス 16driver.get('https://hogehoge.pdf') #任意のURL 17 18# クローズ 19driver.close() 20
16行目のdriver.getで対象のURLにアクセス→ダウンロードは実行できているのですが、その後の処理に進みません。
上記ではドライバのクローズを試みていますが、別途試したprintなども実行されないため
Pythonのプログラムが実行されていないと判断しました。
###解決したいこと
URLアクセス(ファイルダウンロード)後、処理が止まっている原因を除去し後続処理を実行したい。
アドバイスのほどよろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/20 13:11