用python實現文件自動下載,我搜索了一些href鏈接,保存在excel里面,然后希望python能自動開機啟動下載任務,然后讀取excel的href鏈接,並且,自動下載,下載好以后,自動在excel記錄下下載完畢的結果,如果沒有完成,下次繼續下載。我希望電腦能在我不在家的時候,自己去下載文件,不需要我自己點開來。並且下載目錄讓python自己創建,我只要指定保存的總文件路徑。現在先實現從excel里面讀取href連接的功能,使用第三方庫openpyxl
java/javascript/php/python都是能操作excel文件的,可以讀取保存,但是javascript實現不了文件下載保存,其他都能實現,所以用哪個語言我覺得都是一樣的。
1.1 Python官方庫操作excel
Python官方庫一般使用xlrd庫來讀取Excel文件,使用xlwt庫來生成Excel文件,使用xlutils庫復制和修改Excel文件,這三個庫只支持到Excel2003。
1.2 第三方庫openpyxl介紹
第三方庫openpyxl(可讀寫excel表),專門處理Excel2007及以上版本產生的xlsx文件,xls和xlsx之間轉換容易。 注意:如果文字編碼是“gb2312” 讀取后就會顯示亂碼,請先轉成Unicode
1.安裝 cmd 運行命令行
pip install openpyxl
從網上下載的圖片有logo的話還可以用python批量清除logo
1.循環獲取href地址
import openpyxl wb = openpyxl.load_workbook('file/allhref.xlsx') sheets = wb.sheetnames # print(sheets, type(sheets)) def getHref(ws): # print(ws['A']) for href in ws['B']: if href.value != 'href': { print(href.value) } for sheet in sheets: # 循環表 if(sheet == 'Sheet1'): getHref(wb[sheet]) # wb[sheet]
import openpyxl import urllib.request import time filePath = "F:/E/git/python-learn/writeExcel/download/" wb = openpyxl.load_workbook('file/allhref.xlsx') sheets = wb.sheetnames # print(sheets, type(sheets)) def getHref(ws): # print(ws['A']) A一豎列 #循環B數列 for href in ws['B']: if href.value != 'href': { dowload(href.value) } def dowload(url): response = urllib.request.urlopen(url) data = response.read() t = int(time.time() * 1000) name = filePath + '%d'%t+".jpg" //創建保存的文件名稱 with open(name, 'wb') as code: code.write(data) for sheet in sheets: # 循環表 if(sheet == 'Sheet1'): getHref(wb[sheet]) # wb[sheet]
保存文件為時間戳,時間戳轉字符串
t = int(time.time() * 1000) '%d'%t
創建文件夾 依賴os模塊
os.mkdir(“test”)
圖片下載已經實現了,python不能用{ },包住代碼塊,寫的真難受。
import openpyxl import urllib.request import time import os filePath = "F:/download/" #換成自己的下載目錄地址 wb = openpyxl.load_workbook('file/***.xlsx') #換成自己的exal目錄 sheets = wb.sheetnames # print(sheets, type(sheets)) def getHref(ws): # print(ws['A']) A一豎列 #循環B數列 i = 0 for href in ws['B']: name = (ws['A'][i].value) i = i + 1 if href.value != 'href': dowload(href.value, name) def dowload(url, fileName): response = urllib.request.urlopen(url) data = response.read() t = int(time.time() * 1000) os.mkdir("download/"+fileName)//創建新的文件來保存特殊的文件 name = filePath + '%d'%t+".jpg" with open(name, 'wb') as code: code.write(data) for sheet in sheets: # 循環表 if(sheet == 'Sheet1'): getHref(wb[sheet]) # wb[sheet]
sheet1表1的目錄
下面要支持對電影,pdf,迅雷的下載支持 和 對路徑文件名稱的自動匹配,保存成功對exal的保存,獲取時間保存到overTime一行