1. 程式人生 > >python 爬取圖片網站圖片連結並下載收集

python 爬取圖片網站圖片連結並下載收集

python進行圖片網站圖片收集,主要分成如下幾個部分:

(1)進行網站html頁面分析,分析你要找到的圖片的連結,以及每個連結url是怎麼構成的,如果通過爬取頁面的html獲取這些圖片的連結

(2)通過python將這些已知連結的圖片下載下來

注意這行程式碼

header = {"Referer":"http://", "User-agent":"Mozilla/5.0"}  #輸入和imagepage類似的網址

這行程式碼定義了referer,就是告訴被爬網站伺服器說,我的這個請求是從某某連結過來的,referer的引數寫這個網站的首頁,這樣就不會觸發反爬蟲的機制了。

下面附上我爬某個圖片網站的python爬蟲原始碼,大家主要是python的爬站方式。具體的網站連結我已經省略了。大家可以學習完程式碼後,找個網站試下。我總共用這段程式碼爬了50000張照片。

#encoding:utf-8
import requests
import re
from bs4 import BeautifulSoup
header = {"Referer":"http://", "User-agent":"Mozilla/5.0"}  #輸入和imagepage類似的網址


#1-1000
def getImg(img_url, img_name):  
    jpg_url = img_url
    r = requests.get(jpg_url, headers = header)
    
    if r.status_code == 200:
        print img_url + "   success"
    content = r.content
    with open(img_name, 'wb') as fp:
        fp.write(content)
    
# 獲得專輯照片數量
def picSetNum(picSet_url):
    r_set = requests.get(picSet_url, headers=header)
    html_set = r_set.content
    soup_set = BeautifulSoup(html_set, 'lxml')
    tag_pagename = soup_set.find_all(href=re.compile('^/mm/'))
    return tag_pagename[6].string

if __name__ == '__main__':
    homepage = ""                            #輸入你要爬取的目標地址
    imgpage = ""                             #輸入圖片的儲存位置
    for i in range(1,1000):
        temp_url = homepage + str(i)
        for j in range(1,int(picSetNum(temp_url))+1):
            t_url = imgpage + str(i) + '/' + str(j) +'.jpg'
            t_name = 'mm_' + str(i) + '_' + str(j) +'.jpg'
            print t_url
            #print t_name
            getImg(t_url, t_name)