Python爬取並保存網頁中的base64格式的圖片


網頁base64格式的圖片,能加快網頁的加載,減少網頁從服務器請求數據的次數。對於一般以href路徑格式表示的image,通過wget等方式就可以直接下載到本地,

但是base64格式的卻不行,base64格式長得像下面這樣子(這里我右擊公眾號文章后從源碼里看到的)

url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAA.......) 

base64其實就是二進制的圖片數據本身,不過被encode了一下,所以只需要decode之后,之間將解密后的圖片數據保存為png等圖片格式即可。python中提供了base64庫,可以完成這件事。

下面隨手編個自動保存網頁中的base64格式圖片的python程序,這里a.txt保存的是上面右擊看到的公眾號文章的源碼。

import base64
inStr=''
with open('a.txt', 'r') as inFile:
    inStr = inFile.read()
i=0
j=0
pat = 'data:image/png;base64,'
n=len(pat)
L=len(inStr)
ind=0
while i<L:
    while i<L and inStr[i:i+n] != pat:
        i+=1
    if i==L:
        break
    j=i
    while inStr[j]!=')':
        j+=1
    if j<=L:
        base64Str=inStr[i+22:j]
        s = base64.b64decode(base64Str)
        with open('base64{}.png'.format(ind),'wb') as f:
            f.write(s)
        ind+=1
    i=j

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM