標籤:water rect beautiful 技術分享 代碼 spl tar 知識 參考
效果展示:
此模板主要用於多線程套圖下載,不過一般福士爬蟲不用破譯的都可以改改使用,附件有個美圖錄的例子。
每個用途 每個網址 細節都會有差異 所有帶(*)的都屬於DIY範疇,需要一些基本的html知識,請靈活使用。
添加了斷點續傳功能,檔案夾名稱改為套圖地址;
每一句Python原始碼後面都有詳細注釋:
import requests ##參考h踢踢批://docs點python-requests.org/zh_CN/latest/user/quickstart點htmlfrom bs4 import BeautifulSoup ##參考h踢踢批://beautifulsoup點readthedocs.io/zh_CN/v4.4.0/#id55import os ##本地寫入資料import urllib.request ##有時直接開啟圖片地址會顯示403 Forbidden,只有先開啟相關網頁再開啟圖片才能正常顯示,所以我就先開啟一下網頁,可省略import re ##Regex,用於匹配格式from multiprocessing import Pool ##多線程 headers = {‘User-Agent‘:"Mozilla/5.0", "Referer": "圖庫首頁"} ##瀏覽器要求標頭,有時python直接擷取圖片時防盜鏈會踢出,所以我們假裝是在用瀏覽器 def run(url): ##(*)傳入圖片某分類網頁的url start_html = requests.get(url, headers=headers) ##request該url的html檔案 Soup = BeautifulSoup(start_html.text, ‘lxml‘) ##使用BeautifulSoup來解析我們擷取到的網頁(‘lxml’是指定的解析器 具體請參考官方文檔哦) all_a = Soup.find(‘div‘, class_=‘主體的class名稱‘).find_all(‘a‘) ##(*)尋找該網頁上主體的所有圖片 path = url.split(‘/‘)[-2] ##(*)網址的最後一個/之前一般是這一類的總稱,可作為檔案夾名 if not os.path.exists("儲存總目錄" + "/" + path): ##如果沒有這個檔案夾的話,創造並進入 os.makedirs("儲存總目錄" + "/" + path) ##建立一個存放的檔案夾 os.chdir("儲存總目錄" + "/" + path) ##切換到上面建立的檔案夾 for a in all_a: href = a["href"] ##(*) 擷取套圖網頁的url,可省略 elem = a.img[‘src‘] ##(*) 擷取本圖片地址 folder = elem.split(‘/‘)[-2] ##(*) 擷取該套圖的名稱 length = a.next_sibling.next_sibling.get_text() max_span = int(length[-17:-14]) ##(*) 找到該套圖的網頁一共有多少頁 html = requests.get(href, headers=headers, allow_redirects=False) ##訪問套圖網頁,並阻止重新導向(也是防盜鏈的一種) u = urllib.request.urlopen(href) ##真的開啟這個網頁,可省略 for page in range(1, max_span + 1): page_url = elem[:-5] + str(page) + ".jpg" ##(*) 圖片地址格式,需要自己探索 print(page_url) ##(*) 列印一片地址,可省略 img_html = requests.get(page_url, headers=headers, allow_redirects=False) ##訪問圖片地址 name = folder + ‘-‘ + str(page) ##(*) 圖片名格式,套圖名稱+第幾張圖 f = open(name+‘.jpg‘, ‘ab‘) ##寫入這個圖片 f.write(img_html.content) ##多媒體檔案要用.content寫 f.close() urls = {‘url1‘, ‘url2‘,‘url3‘} ##這就是各分類的url pool = Pool(30) ##線程數for url in urls: pool.apply_async(run, args=(url)) pool.close()pool.join()print(‘所有圖片已下完‘)
一行Python代碼一句注釋,大量美女套圖等萌新來戰!