selenium+Python(文件下载)
webdriver允许我们设置默认的文件下载路径,也就是说,文件会自动下载并保存到设置的目录中
下面以Firefox浏览器为例:
from selenium import webdriver from selenium.webdriver.common.keys import Keys from time #time。sleep()实现延时 profile = webdriver.FirefoxProfile() profile.set_preference('browser.download.dir', 'd:\\') profile.set_preference('browser.download.folderList', 2) profile.set_preference('browser.download.manager.showWhenStarting', False) profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip') browser = webdriver.Firefox(firefox_profile=profile) browser.get('http://www.yyyyyy.com') #跳转到下载页面 filelist=browser.find_elements_by_xpath('\\') #定位到文件列表中所有的文件 for file in filelist: file.click() #点击保存文件
browser.download.dir
:指定下载路径
browser.download.folderList
:设置成 2
表示使用自定义下载路径;设置成 0
表示下载到桌面;设置成 1
表示下载到默认路径
browser.download.manager.showWhenStarting
:在开始下载时是否显示下载管理器,ture表示显示,Flase表示不显示
browser.download.dir:用于指定所下载文件的目录。os.getcwd()函数不需要传递参数,用于返回当前目录
browser.helperApps.neverAsk.saveToDisk
:对所给出文件类型不再弹出框进行询问
指定要下载页面的content-type值,“application/octet-stream”
这些参数的设置可以通过在Firefox浏览器输入地址:about:config进行设置
将所有设置信息在调用webdriver的Firefox()方法时作为参数传递给浏览器,Firefox浏览器在下载时就根据设置信息将文件下载到当前脚本的目录下
该例子只是针对Firefox,不懂的浏览器有不同的设置