python-24:加入RE獲取圖片的網址

在這個項目中,咱們須要獲取的是網頁中的圖片,因此下一步咱們須要從下載好的網頁源碼中使用正則表達式獲取咱們須要的圖片的網址
照例先貼上一部分網頁源碼
html

<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就很好寫了
python

<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

咱們開看看輸出的結果是什麼
瀏覽器


貌似這就是圖片的網址了,爲了保險起見,咱們仍是要將網址複製到瀏覽器看看能不能打開
url

相關文章
相關標籤/搜索