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,不懂的浏览器有不同的设置

posted @ 2017-08-31 17:06  Silence&QH  阅读(1327)  评论(0编辑  收藏  举报