[python]很是小的下载图片脚本(非通用)

说在最前面:这不是一个十分通用的下载图片脚本,只是根据个人一个小问题,为了减小个人重复性工做写的脚本。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