Selenium设置文件自动下载

  使用selenium进行爬虫开发时,会遇到下载文件时弹窗显示保存还是打开的问题,这时候可以通过代码设置自动下载。

设置文件自动下载

通过网页开发工具分析文件的http响应的contentType头类型如:

Content-Type: vnd.ms-excel

这时候在代码中设置

FirefoxProfile profile = new FirefoxProfile();     	    	 
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/vnd.ms-excel");

设置文件下载路径

profile.setPreference("browser.download.folderList", 2);
		// 路径分隔符g格式为双斜杠\\,如E:\\sipder\\file
		//所以需要做响应的字符串处理
		String downLoadPath = "E:\\sipder\\file"
		
 		profile.setPreference("browser.download.dir", downLoadPath );
		profile.setPreference("browser.download.useDownloadDir", true);
		profile.setPreference("browser.download.manager.showWhenStarting", false);
### 配置Selenium以实现文件自动下载 为了使浏览器通过Selenium自动化测试框架执行操作时能够自动处理文件下载而不弹出对话框,需设置特定的浏览器选项。以下是针对Chrome和Firefox两种常见浏览器的具体方法。 #### Chrome 浏览器配置 对于Google Chrome而言,可以通过修改`prefs`参数来指定默认下载路径并禁用下载提示: ```python from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options chrome_options = Options() preferences = { "download.default_directory": "/path/to/download/directory", # 设置下载目录 "download.prompt_for_download": False, # 关闭下载确认对话框 "download.directory_upgrade": True, "safebrowsing.enabled": True # 启用安全浏览功能 } chrome_options.add_experimental_option("prefs", preferences) service = Service(executable_path='/usr/local/bin/chromedriver') driver = webdriver.Chrome(service=service, options=chrome_options) ``` 此段代码设置了Chrome启动时的行为偏好,确保所有文件都将被静默地保存到指定位置而不会中断流程[^1]。 #### Firefox 浏览器配置 而对于Mozilla Firefox,则可通过调整profile属性达到相同效果: ```python from selenium import webdriver from selenium.webdriver.firefox.service import Service from selenium.webdriver.firefox.options import Options firefox_profile = webdriver.FirefoxProfile() firefox_profile.set_preference('browser.download.folderList', 2) # 使用自定义下载路径而非桌面或默认位置 firefox_profile.set_preference('browser.download.dir', '/path/to/download/dir') # 设定具体的目标文件夹 firefox_profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/pdf,application/octet-stream,image/png') # 定义哪些MIME类型的文件应直接保存而不是询问用户 options = Options() options.profile = firefox_profile service = Service(executable_path='/usr/local/bin/geckodriver') driver = webdriver.Firefox(service=service, options=options) ``` 这段脚本同样实现了无交互式的文件下载过程,并允许开发者根据实际需求定制支持的文件类型列表。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值