說在最前面:這不是一個十分通用的下載圖片腳本,只是根據個人一個小問題,爲了減小個人重複性工做寫的腳本。html
問題
-
原由:個人這篇博文什麼是真正的程序員瀏覽量超過了4000+。python
-
問題來了:裏面的圖片我都是用的七牛的圖牀,我使用的是免費用戶,每月只有1G的下載流量,今天我收到一封郵件,告訴我我欠費了,欠費了幾毛錢。我看了下使用概況,原來是流量超了,一個多G。光我博文發佈的那天居然有近1G的下載流量。。。。
程序員
-
爲何這麼作:由於個人文章都是在
atom
編輯器中,用markdown寫的。因此圖片都是以‘參考式’的形式插入,url都是七牛生成的。以下圖:
發佈文章的時候直接全文拷貝到博客園後臺,直接就能夠發佈顯示,不須要再上傳圖片到博客園上。markdown -
解決辦法:看來爲了之後不被莫名其妙的扣費(貌似七牛沒有使用量預警,只有月末結算)。我打算把全部的圖片上傳到博客園。我本地沒有這些圖片的備份,七牛網頁上也沒找到批量下載的功能。一共19張圖片,我又不想一個個下載。因此就寫了個腳本。編輯器
腳本
#!/usr/bin/env python # -*- coding:utf-8 -*- # # Author : XueWeiHan # E-mail : 595666367@qq.com # Date : 16/3/9 下午4:16 # Desc : 下載圖片腳本 import requests PATH = '/Users/xxx/Downloads/img' #保存圖片的路徑 # 圖片的url(url我已經換成博客園的了,只留了兩個) URLS = [ '[pic1]: http://images2015.cnblogs.com/blog/759200/201603/759200-20160309165053600-1959617063.png "迴旋鏢"', '[pic2]: http://images2015.cnblogs.com/blog/759200/201603/759200-20160309165138632-1466995563.png "即興表演"', ] class Img(object): def __init__(self, url): self.file_name = url.split('/')[-1] self.url = url self.path = PATH+'/'+self.file_name @property def data(self): r = requests.get(self.url) return r.content def save(self): with open(self.path, 'wb') as fb: fb.write(self.data) for i, url in enumerate(URLS): url = url.split(' ')[1] Img(url).save() print u'第{}/共{}:{}'.format(i+1, len(URLS), 'sucess')
下載完成:
atom
事情沒有那麼簡單
腳本很快就寫好了,秒下載完!可是,我們的__博客園__不支持批量上傳。T_T(若是有知道的小夥伴,請告訴無知的我)。url
完結
話說,寫這篇博客花費的時間是這些操做中最長的~看來我又賣萌了。。。。逃spa
本文分享 CNBlog - 削微寒的程序員之路。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。.net