1. 程式人生 > >用網路爬蟲爬取該網頁所有頁碼的所有圖片

用網路爬蟲爬取該網頁所有頁碼的所有圖片


import urllib.request
import time
import re

global x # 使用前初次宣告
x=1
#獲取網頁的html,與requests包一樣的功能
def getHtml(url):
    #開啟網頁
    page = urllib.request.urlopen(url)

    htmlcode = page.read() 
    return htmlcode


#獲取圖片對應的src屬性程式碼


def getImg(html):
    global x  # 再次宣告,表示在這裡使用的是全域性而非區域性
    html=html.decode('utf-8')
        
    #通過re-compile-findall二連函式操作來獲取圖片src屬性對應的程式碼
     
    src = r'https://[^\s]*?\.jpg'  
    imgre = re.compile(src)     #re.compile(),可以把正則表示式編譯成一個正則表示式物件
    imglist = re.findall(imgre, html) 
    #re.findall(),讀取html中包含imgre(正則表示式)的資料,imglist是包含了所有src元素的陣列
        
    #用urlretrieve下載圖片。圖片命名為0/1/2...之類的名字
       
    
    for imgurl in imglist:
        name = time.strftime("%Y_%m_%d",time.localtime()) + '_' + str(x)
            
         #注意,這裡的檔案路徑,每段路徑的首字母一定要大寫!!小寫會識別出錯
        urllib.request.urlretrieve(imgurl, r'C:\Users\aming\Desktop\K\%s.jpg' % name)
        x += 1
        
        
      
    
for i in range(2,4):
        
        html = getHtml("https://tieba.baidu.com/p/2460150866?pn=" + str(i))
        getImg(html)