初用正则表达式爬取图片

<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


还有关于爬取下来的图片为啥不能看的原因,一直显示图片已经损坏或者是怎么样的,原因是我们在源代码中看到的根本就不是图片原本的链接,具体的解决方法什么的在我的另一篇博客里面有哈,虽然是转发的吧!

 
 


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值