檔案目錄
- 寫在前面
- 一、需求分析
- 二、編程思路
- 三、完整代碼
- 參考源自
寫在前面
??晚上逛B站的時候,看到這個視頻,我啪的一下就點進去了,很快啊,于是重新復現了功能并做了些小優化,今天分享給大家,還是老規矩在文末會附上完整代碼,需要的小伙伴自取就好了,能幫助到你的話別忘了點贊關注喔~
??鄭重宣告:本人目前僅在CSDN這一個平臺發布文章,其他小伙伴如果想轉載 或者參考請注明參考來源,未經許可不得直接搬運,請尊重創作人的勞動成果,謝謝!

一、需求分析
??爬取網站的小姐姐圖片,并保存在指定目錄
??網站鏈接: https://www.vmgirls.com/13344.html
效果圖如下:

二、編程思路
??在爬取網頁時首先要的就是對網頁進行分析,這里我主要需要的是兩個部分,一個是這組圖的名稱,用來做檔案名;另一個是圖片鏈接,用來下載圖片,
通過對原始碼觀察我發現組圖的名稱在這個<h1>的標簽里<h1 class="post-title h1">少女情懷總是詩</h1>,圖片鏈接的話在這個<a>標簽中<a href="//static.vmgirls.com/image/2019/12/2019122210292813-scaled.jpeg" alt="少女情懷總是詩" title="少女情懷總是詩"><img alt="少女情懷總是詩-唯美女生" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="//static.vmgirls.com/image/2019/12/2019122210292813-scaled.jpeg" data-nclazyload=true data-pagespeed-lsc-url="https://static.vmgirls.com/image/2019/12/2019122210292813-scaled.jpeg"></a>好了找到要爬取內容的所在地之后那么就很簡單了,因為我比較擅長re庫,所以這里用正則運算式來進行網頁決議,完整代碼在下邊給出,
三、完整代碼
import requests
import re
import time
import os
#獲取網頁
kv = {'user-agent':'Mozilla/5.0'}
response = requests.get("https://www.vmgirls.com/13344.html" , headers = kv)
html = response.text
#決議網頁
dir_name = re.findall('<h1 class="post-title h1">(.*?)</h1>',html)[-1] #作為檔案名
if not os.path.exists(dir_name):
os.mkdir(dir_name)
urls = re.findall('<a href="(.*?)" alt="少女情懷總是詩".*?</a>',html)
#print(urls)
#保存圖片到指定檔案
num = 1
for url in urls:
time.sleep(1) #設定爬取時間間隔為1s
#定義圖片的名字
file_name = url.split('/')[-1]
response = requests.get('https:' + url , headers = kv) #制定并獲取圖片鏈接
with open(dir_name + '/' + file_name,'wb') as f:
f.write(response.content) #因為圖片是二進制所以用content寫入
print("正在爬取第%d張圖片"%(num))
num = num + 1
f.close()
print("爬取完畢")
??然后就可以看到一張張圖片被下載到本地啦,還在等什么,趕緊試試吧~

參考源自
B站Python學習者 鏈接:https://www.bilibili.com/video/BV1qJ411S7F6
??本篇完,如有錯誤歡迎指出~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/229188.html
標籤:python
下一篇:python中的pop()函式
