Python爬蟲爬取網頁圖片


沒想到python是如此強大,令人着迷,以前看見圖片總是一張一張復制粘貼,現在好了,學會python就可以用程序將一張張圖片,保存下來。

今天逛貼吧看見好多美圖,可是圖片有點多,不想一張一張地復制粘貼,怎么辦呢?辦法總是有的,即便沒有我們也可以創造一個辦法。


下面就看看我今天寫的程序:

#coding=utf-8

#urllib模塊提供了讀取Web頁面數據的接口
import urllib.request
#re模塊主要包含了正則表達式
import re
#定義一個getHtml()函數
def getHtml(url):
    page = urllib.request.urlopen(url)  #urllib.request.urlopen()方法用於打開一個URL地址
    html = page.read() #read()方法用於讀取URL上的數據
    return html

def getImg(html):
    reg = r'src="(.+?\.jpg)" pic_ext'    #正則表達式,得到圖片地址
    imgre = re.compile(reg)     #re.compile() 可以把正則表達式編譯成一個正則表達式對象.
    html = html.decode('utf-8') #python3
    imglist = re.findall(imgre,html)      #re.findall() 方法讀取html 中包含 imgre(正則表達式)的數據
    #把篩選的圖片地址通過for循環遍歷並保存到本地
    #核心是urllib.request.urlretrieve()方法,直接將遠程數據下載到本地,圖片通過x依次遞增命名
    x = 0

    for imgurl in imglist:
     urllib.request.urlretrieve(imgurl,'D:\E\%s.jpg' % x)
     x += 1


html = getHtml("https://tieba.baidu.com/p/xxxxxxxx")
print(getImg(html))

 

運行程序后,下面就是見證奇跡的時刻,打開對應文件夾:


哇!圖片全部保存了下來,so nice!     :-)

 

2019年1月更新備注:

此前代碼為2015年Python2.x環境測試,現在已將代碼更新,測試環境為Python3.7 ,注意請在D盤新建一個文件夾重命名為E

測試網址:https://tieba.baidu.com/p/2555125530

測試結果如圖:

 


免責聲明!

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



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