selenium+python自動化80-文件下載(不彈詢問框)


前言

上一篇是點彈出框上的按鈕去保存文件,本篇介紹一種更加優雅的方法,加載Firefox和Chrome的配置文件,不彈出詢問框后台下載。

 

一、FirefoxProfile

1.點下載的時候,如下圖,如果不想讓它彈出這個詢問框,可以加載firefox的配置文件隱藏起來

2.設置各項參數,參數可以通過在瀏覽器地址欄中輸入about:config查看

3.FirefoxProfile的配置說明

-'browser.download.folderList':設置成0表示下載到桌面;設置成1表示下載到默認路徑;設置成2則可以保存到指定目錄;

- 'browser.download.dir' :“設置一個本地電腦路徑:‘d:\\’ ”

- "browser.download.manager.showWhenStarting", False  是否顯示下載進度框,下圖所示(這個設置沒生效)

- "browser.helperApps.neverAsk.saveToDisk", "application/octet-stream"  對所給出文件類型不再彈出框進行詢問

 

二、文件類型

1.第四個參數文件類型這里一定要注意了,下載的不同文件類型,參數是不一樣的,可以查閱:MIME 參考手冊 http://www.w3school.com.cn/media/media_mimeref.asp

 

 

三、Firefox配置

# coding:utf-8

from selenium import webdriver

# 設置各項參數,參數可以通過在瀏覽器地址欄中輸入about:config查看。
profile = webdriver.FirefoxProfile()

# 設置成0表示下載到桌面;設置成1表示下載到默認路徑;設置成2則可以保存到指定目錄;
profile.set_preference('browser.download.folderList', 2)

# 指定下載文件到你想放的路徑
profile.set_preference('browser.download.dir', 'd:\\')

# 開始下載時候顯示是否顯示進度框 (這個設置目前沒生效)
profile.set_preference("browser.download.manager.showWhenStarting", False)

# 對所給出文件類型不再彈出框進行詢問
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")

driver = webdriver.Firefox(firefox_profile=profile)
# 打開有道雲筆記
driver.get("http://note.youdao.com/")
# 點立即下載按鈕
driver.find_element_by_id("download-btn").click()

 

四、Chrome配置

# coding:utf-8
from selenium import webdriver

profile = webdriver.ChromeOptions()

prefs = {'profile.default_content_settings.popups': 0,  # 設置為 0 禁止彈出窗口
         'download.default_directory': 'd:\\'}          # 指定下載路徑

profile.add_experimental_option('prefs', prefs)

# executable_path這個是chromedriver的路徑 如果設置過環境變量,此參數可以省略
chromedriver_path = "D:\\path\\chromedriver.exe"   # 自己本地電腦路徑
driver = webdriver.Chrome(executable_path=chromedriver_path, chrome_options=profile)

# 打開有道雲筆記
driver.get("http://note.youdao.com/")

# 點立即下載按鈕
driver.find_element_by_id("download-btn").click()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM