python学习记录第三篇

#coding=utf-8
'''
@author: python_菜鸟
zoomfile="http://img.nr99.com/attachment/forum/201403/31/153248a2sdwd5o1domds1m.jpg"
http://www.nr99.com/thread-123280-1-1.html
http://www.nr99.com/thread-123409-1-1.html
'''
import re
import urllib

def getHtml(url): #第一次忘写了参数,⊙﹏⊙b汗
html=urllib.urlopen(url) #获取给定网址的页面源代码,是一个对象文件
pageContent=html.read() #读取网页文件中的内容
#html.close() #关闭sockit
return pageContent #返回读取网页文件中的内容
#print url.geturl() #打印请求的网址
#print pageContent

def callbackfunc(blocknum, blocksize, totalsize):
'''回调函数
@blocknum: 已经下载的数据块
@blocksize: 数据块的大小
@totalsize: 远程文件的大小
'''
percent = 100.0 * blocknum * blocksize / totalsize
if percent > 100:
percent = 100
print "------------------------------下载完成了----------------------------------"
print "%.2f%%"% percent


def getImg(pageContent,callbackfunc):
#查找图片的正则表达式
src=r'zoomfile=\"(http://img\..+\.jpg)\" file' # @坑1,之前没有加 file,导致从zoomfile开始所有的字符串全都匹配
srcm=re.compile(src)
getImgSrc=re.findall(srcm,pageContent)
#print getImgSrc
name=16
#逐条获得图片地址并下载
for image in getImgSrc:
urllib.urlretrieve(image,"E:\\python\\%s.jpg"% name,callbackfunc)
name+=1

pageContent=getHtml("http://www.nr99.com/thread-123280-1-1.html")
getImg(pageContent,callbackfunc)

posted @ 2014-07-04 11:39  python_菜鸟  阅读(260)  评论(0)    收藏  举报