一行Python代碼一句注釋,大量美女套圖等萌新來戰!

來源:互聯網
上載者:User

標籤: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代碼一句注釋,大量美女套圖等萌新來戰!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.