python学习:urllib库学习:制作简易爬虫下载图片



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 urllib
import 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)




你可能感兴趣的:(python,爬虫)