<pre name="code" class="python">#coding:utf-8
#导入正则模块
import re
import urllib
#获取网页
def getHtml(url):
#打开该网页
page=urllib.urlopen(url)
#读取网页的源代码
html=page.read()
#print html 测试一下是否成功读取
return html
#获取图片
def getImg(html):
#用正则表达式进行匹配
reg='src="(.*?)\.jpg" data-tb-lazyload'
imgre=re.compile(reg)
#查找所有
imglist=re.findall(imgre,html)
x=0
#遍历图片地址并保存
for imgurl in imglist:
x+=1
urllib.urlretrieve(imgurl,'%s.jpg' % x)
url='http://tieba.baidu.com/p/3246506701'
#调用函数
html=getHtml(url)
getImg(html)
小某说:匹配正则的时候,.*?没有加括号,没有进行分组,然后就会报错
IOError: [Errno url error] unknown url type: 'src=%22http'
这里有具体讲关于圆括号的作用哦!
http://blog.csdn.net/hanjieson/article/details/8885206
还有关于爬取下来的图片为啥不能看的原因,一直显示图片已经损坏或者是怎么样的,原因是我们在源代码中看到的根本就不是图片原本的链接,具体的解决方法什么的在我的另一篇博客里面有哈,虽然是转发的吧!