python-24:加入RE获取图片的网址

在这个项目中,我们需要获取的是网页中的图片,所以下一步我们需要从下载好的网页源码中使用正则表达式获取我们需要的图片的网址
照例先贴上一部分网页源码

<dt><a href="http://product.yesky.com/gshijie/sheying/35/51594035.shtml" title="移轴镜头纪录梦幻风光大片">
<img src="http://image.tianjimedia.com/uploadImages/2015/065/37/6P8O1CM0V6DM_200x150.jpg"  alt="移轴镜头纪录梦幻风光大片" /></a></dt>
<dd>
......
......
......
</dd>
</dl>
<dl>
<dt><a href="http://product.yesky.com/gshijie/sheying/32/51594032.shtml" title="用生命拍照 美女与野兽唯美人像摄影">
<img src="http://image.tianjimedia.com/uploadImages/2015/065/57/457S36THU7V4_200x150.jpg"  alt="用生命拍照 美女与野兽唯美人像摄影" /></a></dt>
<dd>
......
......
......
</dd>
</dl>
<dl>

那么怎么在源码中找到图片所在的位置呢?
1. html 源码中图片的标签是 <img src /> 包裹的代码块
2. 一般网页源码中带下划线的句子是一些网页的链接,而图片是以网页的形式存储的,所以把这些链接点开来试试看
3. 图片有很多格式,比如JPG,JEPG,PNG等,这是图片文件的后缀名,可以用这些关键字搜索

所以,源码中的图片就是<img src />的代码块里面的内容,知道这些RE就很好写了

<img src="(.*?)".*?

这是我写的RE,可以有很多种写法。加入RE后的源码是这样的

#!/uer/bin/env python
# -*- coding: UTF-8 -*-
__author__ = '217小月月坑'
'''
加入RE获取网页中的图片的网址
'''

import urllib2
import re

url = 'http://product.yesky.com/more/506001_31372_photograph_1.shtml'
user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0'
headers = {'User-Agent':user_agent}

try:
    request = urllib2.Request(url,headers=headers)
    response = urllib2.urlopen(request)
    conents = response.read().decode("gbk")
    pattern = re.compile(r'<img src="(.*?)".*?',re.S)
    items = re.findall(pattern,conents)
    for item in items:
        print item
except urllib2.URLError,e:
    if hasattr(e,"code"):
        print e.code
    if hasattr(e,"reason"):
        print e.reason

我们开看看输出的结果是什么

26125637_M4LF.jpg
貌似这就是图片的网址了,为了保险起见,我们还是要将网址复制到浏览器看看能不能打开

转载于:https://my.oschina.net/u/2429887/blog/535852

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值