2015-11-13 190 views
0

我正在尋找一種方法從網站自動下載文件。從網頁上自動下載文件

目前這個過程實際上是手動和沉重的。 我去了一個網頁,我進入我的通行證和登錄。 它彈出一個彈出窗口,我必須點擊一個下載按鈕來保存一個.zip文件。

關於如何自動執行此任務,您有任何建議嗎?

我在Windows 7上,我主要可以使用MS dos批處理或python。但我接受其他想法。

+0

我會看看使用AutoIt或AutoHotKey – Squashman

+0

.zip文件的名稱是否更改?如果它是靜態的,你應該可以使用'curl'之類的東西並繞過瀏覽器。 – orde

回答

1

您可以使用硒網絡驅動程序自動下載。您可以使用以下代碼段在Java瀏覽器下載的喜好。

FirefoxProfile profile = new FirefoxProfile(); 
profile.setPreference("browser.download.folderList", 2); 
profile.setPreference("browser.download.manager.showWhenStarting", false); 
profile.setPreference("browser.download.dir", "C:\\downloads"); 
profile.setPreference("browser.helperApps.neverAsk.openFile","text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,text/html,text/plain,application/msword,application/xml"); 

要在彈出來使用這個類處理彈出。

Robot robot = new Robot(); 
robot.keyPress(KeyEvent.VK_DOWN); 
robot.keyRelease(KeyEvent.VK_DOWN); 
robot.keyPress(KeyEvent.VK_ENTER); 
robot.keyRelease(KeyEvent.VK_ENTER); 
0

你會想看看的請求(獲取HTML和文件),Beautifulsoup(解析HTML,找到鏈接)

請求已建成AUTH: Beautifulsoup相當易於使用:http://www.crummy.com/software/BeautifulSoup/bs4/doc/

僞代碼:使用請求下載網站的HTML和身份驗證。通過解析來瀏覽鏈接。如果鏈接符合標準 - >保存在列表中,否則繼續。當所有鏈接都被廢棄時,通過它們並使用請求下載文件(req = requests.get('url_to_file_here',auth = {'username','password'}),如果[200]中的req.status_code,文件= req.text

如果你可以發佈你想從,也許我們可以做更多的下載網站的鏈接。