莫愁前路无知己,天下谁人不识君。。。。

python小编程-----------爬取图片2

上一篇 / 下一篇  2017-11-13 11:13:28 / 个人分类:python 小编程

# _*_ encoding:utf-8 _*_
"""
图片下载爬虫
"""
import re
import urllib2
import urllib
# 获取网页内容
def get_content(url):
    html = urllib2.urlopen(url)
    content = html.read()
    html.close()
    return content
# 根据网页内容,通过正则获取图片url,最后下载
def get_images(info):
    """
    <img class="BDE_Image" src="http://imgsrc.baidu.com/forum/w%3D580/
    sign=a66d6c61d60735fa91f04eb1ae500f9f/cc1ebe096b63f6246615f7798544ebf81a4ca305.jpg"
    pic_ext="jpeg" width="490" height="777">
    :param info:
    :return:
    """
    # 首先观察html文件,找到一个规则
    # 然后用正则表达式来表示这个规则
    regex = r'img class="BDE_Image" src="(.+?\.jpg)" '
    # .匹配除换行符之外的任意单个字符
    # +:表示匹配一次或多次
    # ?:表示贪婪模式,尽可能少的匹配
# +?匹配一次或更多次的重复,但是在能使整个匹配成功的前提下使用最少的重复
# *? 是懒惰匹配,一旦匹配到第一个就不往下走了
    pat = re.compile(regex)
    images_code = re.findall(pat, info)
    # 将图片保存到本地
    i = 0
    for images_url in images_code:
        print images_url
        urllib.urlretrieve(images_url, 'E:\\images2\\%s.jpg' % i)  # 保存在本地,参数1:图片地址,2:图片
        i += 1
        # print i
    return images_code
url = "http://tieba.baidu.com/p/2772656630"
info = get_content(url)
images = get_images(info)  # images是一个列表类型
print len(images)  # 输出列表的长度


TAG: 爬虫2

 

评分:0

我来说两句

Open Toolbar