下载图片的小程序

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

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

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

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

#coding=utf-8
'''
Created on 2015年4月25日

@author: frozen cloud
'''
import urllib,urllib2,os
import re
import __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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值