簡體   English   中英

失敗-在Selenium無頭Chrome中下載時出現下載錯誤

[英]Failed - Download Error when downloading in Selenium headless Chrome

我正在嘗試使用Selenium在Chrome中下載文件。 我發現無頭Chrome默認情況下不允許文件下載,因此應用了一種解決方法 但是,實施替代方法會導致某些文件在Chrome中產生“ Failed - Download Error

driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': abs_path}}
driver.execute('send_command', params)

這是我的代碼:

chrome_options = webdriver.ChromeOptions()
prefs = {
    "download.prompt_for_download": False,  # allow automatic downloads
    "plugins.always_open_pdf_externally": True,  # allow download of pdf instead of open in plugin
    "download.default_directory": path,
    "safebrowsing.enabled": False  # allow download of .msi, .exe files, etc.
}
chrome_options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)

driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': path}}
driver.execute('send_command', params)

for url in file_urls:  # file_urls here is a list of download links
    driver.get(url)

在搜索“ Download error常見原因之后,我排除了以下內容:

  1. 下載路徑錯誤:可以下載某些具有相同下載路徑的文件,但其他可以
  2. 文件路徑太長:某些可下載的文件的路徑比錯誤的路徑長

刪除解決方法后,所有文件都可以正常下載,但是我將無法以無頭模式下載。 任何的意見都將會有幫助。

附加信息:
ChromeDriver版本: 2.40.565498
Chrome版本: 67.0.3396.87

您可以嘗試禁用安全性 ,也許它會起作用

我建議不要在無頭模式下運行,我們也在Linux服務器上運行selenium,並且我們選擇使用單獨的selenium docker容器(Web服務器)並創建遠程驅動程序,而不是本地驅動程序:

檢查此頁面以獲取更多信息

安裝docker之后,您可以使用以下命令啟動selenium

docker run -d -p 4444:4444 -v /dev/shm:/dev/shm --network host selenium/standalone-chrome:3.141.59-neon

確保具有--network host以便可以從localhost訪問4444端口。 之后,您只需執行以下操作即可創建一個遠程驅動程序

from selenium import webdriver

driver = webdriver.Remote(command_executor = exec_path or 'http://localhost:4444/wd/hub'))

這樣,您就不必擔心硒中的任何東西,而將精力集中在您的項目上

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM