1. 程式人生 > >selenium+python自動化80-文件下載(不彈詢問框)

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

manager browser cat odi TP cto show 默認 AS

前言

上一篇是點彈出框上的按鈕去保存文件,本篇介紹一種更加優雅的方法,加載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()

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