下载图片的小程序

来源:互联网 发布:逻辑 知乎 编辑:程序博客网 时间:2024/05/01 13:44

一直对python很感兴趣,是接触过不多的语言中唯一有心动感觉到。虽然工作中使用过,但是使用的很简单,主要都是用python进行文本匹配,对正则表达式的要求更高一些。

一直希望能提升自己的这一项技能,python让编程更加简单。这也是我对编程这个事情的一贯看法,未来,甚至是现在已经开始了——程序不再是算法+数据结构,而是模块。开发人员也将两极分化,制作模块的工具级开发者,和使用模块的应用级开发者。这种分化就像理论物理和应用物理的分化一样。对于应用开发者的门槛极低,只需要将已有模块进行组装即可,如果模块不满足需求,模块开发者对模块进行升级。

python这个语言有这样的意思,让编程的门槛变得低很多。对于一些类型的问题有很强的解决能力。可以被归类为优雅的语言一族里面。

下面是写了一个简单的下载图片的程序,代码都加了注释,非常简单,容易理解。

#coding=utf-8'''Created on 2015年4月25日@author: frozen cloud'''import urllib,urllib2,osimport reimport __main__#网站地址SITE_URL = 'http://www.netbian.com'#页面地址url = 'http://www.netbian.com/meinv'#下载的目录,当前目录下的meinv子文件夹myPath = os.path.join(os.getcwd(),'meinv')#在当前目录下创建meinv文件夹def createDirectory(dirName):    if not os.path.isdir(myPath):        os.mkdir(myPath)    return os.path.join(myPath,dirName)   def getHtml(url):    #打开并读取url内容    page = urllib2.urlopen(url, None, 5000).read()    #获取页面编码,如果是GBK,则进行一次转换    reg = re.findall(r'<meta charset="gbk" />',page)    if reg:        page = page.decode('gbk')    return page.encode('utf-8')def downloadImage():    #获取整个html页面源码    html = getHtml(url)    #找到所有图片    img = re.findall(r'<img src="[\s\S]+?"\s+data-src="(\S+?)"' ,html)    for img_url in img :        #图片地址        img_url = SITE_URL + img_url        #图片名称        img_name = re.findall(r'http://\S+/(\w+?\.jpg)',img_url)        #下载图片        urllib.urlretrieve(img_url, createDirectory(img_name[0]))    if __name__=='__main__':    downloadImage()

这只是一个简单的程序,如果仔细分析,制作成网络爬虫式的程序还有很多地方需要修改。

比方说爬虫的基本特点就是穷举检索URL,而一些必要的特征也没有进行添加,如伪装浏览器设置请求报文头等。

未来有机会我会进一步完善的。

0 0
原创粉丝点击