python入門012~使用requests爬取網路圖片並儲存到本地

highhand發表於2021-09-09

上一節我們學習了python3藉助requests類庫爬取網頁資料,這一節我們繼續深入的講解python爬蟲的實現。今天要將的是使用python3爬取網路圖片,並儲存到本地。

本節知識點
1,python3爬取網站原始碼
2,正則匹配獲取圖片連結
3,使用python3將不怕儲存到本地

一,首先我們來看下要爬取的網址

下圖箭頭所指的就是我們要爬取的圖片。
圖片描述

二,爬取網址原始碼到本地

圖片描述
透過上圖我們可以看到,我們成功的爬取到了網站原始碼,而這個網站的 <img 圖片顯示標籤裡用了 data-src 懶載入來顯示圖片,所以我們接下來要做的就是使用正規表示式來匹配出網站原始碼裡的圖片連結。

三,正規表示式匹配圖片連結

圖片描述
透過上圖可以看出,我們成功的匹配到了網站原始碼裡的圖片連結,接下來,我們就要把這個圖片儲存在本地了。

四,儲存圖片到本地

圖片描述
如上圖,我們做儲存圖片的時候,需要先在我們程式碼的外層目錄建立一個 imgs資料夾,用於存放圖片。然後編寫核心程式碼。

五,完整程式碼如下。

圖片描述

六,執行程式碼,看下效果

圖片描述
可以看下我們爬取到的圖片
圖片描述

最後把完整程式碼貼給大家

# python3爬取網路圖片
import requests
import re

# 第一個爬取網址
url = ''

# 獲得網頁原始碼
data = requests.get(url).text
# print("網站原始碼", data)

# 圖片正規表示式
regex = r'data-class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="(.*?.jpg)"'
# re是一個列表
pa = re.compile(regex)  # 建立一個pa模板,使其符合匹配的網址
ma = re.findall(pa, data)  # findall 方法找到data中所有的符合pa的物件,新增到re中並返回
# print(ma)

# 將ma中圖片網址依次提取出來
i = 0
for image in ma:
    i += 1
    image = requests.get(image).content
    print(str(i) + '.jpg 正在儲存。。。')
    with open('../imgs/' + str(i) + '.jpg', 'wb') as f:  # 注意開啟的是就jpg檔案
        f.write(image)

print('儲存完畢')

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/810/viewspace-2823303/,如需轉載,請註明出處,否則將追究法律責任。

相關文章