Skip to main content
 首页 » 编程设计

Python Selenium Headless 下载

2025年05月04日9zdz8207

我正在尝试使用 selenium 下载文件。我已经搜索了所有内容。

在 How to control the download of files with Selenium Python bindings in Chrome有人说它有效。 但这对我没有用!也许我想念什么?唯一不同的是我的页面自动开始下载 csv 文件。

在研究了我添加的 chrome 代码之后:

        "safebrowsing_for_trusted_sources_enabled": False 

但是id还是不行。

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) 

也许将来会对其他人有用...... 可能里面有很多没用的东西,还没来得及改:).