莫愁前路无知己,天下谁人不识君。。。。
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