[英]Python Selenium Headless download
我正在嘗試使用硒下載文件。 我已經搜索了所有內容。
在Chrome中如何使用Selenium Python綁定控制文件下載時,有人告訴它可以使用。 但這對我沒有用! 也許我想念什么? 唯一不同的是,我的頁面自動啟動下載了csv文件。
研究了Chrome代碼后,我添加了:
"safebrowsing_for_trusted_sources_enabled": False
但仍然無法正常工作。
options = Options()
options.add_argument("--disable-notifications")
options.add_argument('--no-sandbox')
options.add_experimental_option("prefs", {
"download.default_directory": "C:\\Users\\claudiu.ivanescu\\Downloads",
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing_for_trusted_sources_enabled": False
})
options.add_argument('--disable-gpu')
options.add_argument('--disable-software-rasterizer')
options.add_argument('--headless')
感謝支持
如果有人感興趣,請在搜索2天后:)。 我設法使其有效!
我在此評論中找到了錯誤跟蹤的答案: https : //bugs.chromium.org/p/chromium/issues/detail?id=696481#c86
我使用的代碼是:
def enable_download_headless(browser,download_dir):
browser.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd':'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': download_dir}}
browser.execute("send_command", params)
if __name__ == '__main__':
options = Options()
options.add_argument("--disable-notifications")
options.add_argument('--no-sandbox')
options.add_argument('--verbose')
options.add_experimental_option("prefs", {
"download.default_directory": "C:\\tmp",
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing_for_trusted_sources_enabled": False,
"safebrowsing.enabled": False
})
options.add_argument('--disable-gpu')
options.add_argument('--disable-software-rasterizer')
options.add_argument('--headless')
driver_path = "C:\\Users\\tmp\\chromedriver.exe"
driver = webdriver.Chrome(driver_path, chrome_options=options)
enable_download_headless(driver, "C:/tmp")
driver.get(url)
也許將來會對其他人有所用...里面可能有很多沒用的東西,但是還沒有時間來改變:)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.