python 爬取圖片網站圖片連結並下載收集
阿新 • • 發佈:2019-02-05
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)