python学习:urllib库学习:制作简易爬虫下载图片
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
环境:
主机:WIN8
版本:python2.7.9
说明:
制作简易爬虫,对nba贴吧(http://tieba.baidu.com/f?ie=utf-8&kw=nba&fr=search)的图片进行下载,下载完一页,自动翻页下载
下载的部分图片:
下载中提示:
源代码:
import urllibimport re
#搜索所有帖子的链接
def search_link(link_src):
print '报告:搜索所有帖子链接开始!'
page_num = raw_input('请输入需要搜索的页数')
#reg = r'href="(http.+?html)"'
reg = r'href="(/p/.+?)"'
linkre = re.compile(reg)
count = 0
src = link_src
link_list = []
for i in range(int(page_num)):
#打开页面
link_src = src + 'pn=%d' %(i * 50)
page = urllib.urlopen(link_src)
html = page.read()
print '当前第%d页' %(i + 1)
print '当前搜索的链接为',link_src
link_now = re.findall(linkre,html)
print '本页链接数%d' %len(link_now)
x = 0
for x in range(len(link_now)):
link_now[x] = 'http://tieba.baidu.com' + link_now[x]
count = count + 1
print link_now[x],count
link_list.append(link_now[x])
print '报告:搜索所有帖子链接完成!'
return link_list
#下载图片
def download_img(link_list):
print '报告:下载开始!'
#图片过滤规则
reg = r'class="BDE_Image" src="(.+?jpg)"'
imgre = re.compile(reg)
x = 0
for imgurl in link_list:
#打开链接
print '当前打开链接%s' %imgurl
page = urllib.urlopen(imgurl)
html = page.read()
#图片链接表
img_list = re.findall(imgre,html)
for img_url in img_list:
try:
urllib.urlretrieve(img_url,'%s.jpg' %x)
x+=1
print "下载完成第%d张图片:%s" %(x,img_url)
except Exception, e:
print "下载图片失败:%s" %(img_url)
print '报告:下载完成!'
#链接源地址
link_src = "http://tieba.baidu.com/f?kw=nba&ie=utf-8&"
#搜索所有帖子的链接
link_list = search_link(link_src)
#下载图片
download_img(link_list)