當前位置:首頁>時尚>杭州電子科技大學美女校花(看到漂亮的小姐姐心動)
發布時間:2024-09-13閱讀(14)

偶然一次,我在深夜難眠時,突然一道靚麗的網站從我眼前滑過,猛然使我驚醒。我發現校花網好多漂亮小姐姐的照片啊!嘿嘿,留下當手機壁紙不錯,yyds!
于是,我利用了Python一次性把她們的照片下載了出來!
那么,我們該如何一次性爬取下載這些令人心動的照片呢?
我們先來看下怎么爬取一張圖片的數據:
urllib模塊作用和requests模塊一樣,都是基于網絡請求的模塊
當requests問世后就迅速地替代了urllib模塊
比如,我們現在準備爬取這張可愛的熊熊:

先用右鍵復制圖片地址:
img_url = https://gimg2.baidu.com/image_search/src=http://pic21.nipic.com/20120606/5137861_093119370162_2.jpg&refer=http://pic21.nipic.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1634794705&t=162f415928fef44dc6fb006639dd034d
requests方式:
response = requests.get(url=img_url, headers=headers)img_data = response.content # content返回的是二進制形式的響應數據with open(1.jpg, wb) as f: f.write(img_data)# 圖片就保存為 1.jpg
urllib方式:
# 可以直接對url發起請求并且進行持久化存儲urllib.request.urlretrieve(img_url, ./2.jpg)
上述兩種爬起圖片的操作不同之處是什么?
使用urllib的方式爬取圖片無法進行UA偽裝,而requests的方式可以。不需要UA偽裝的情況下,使用urllib下載圖片更方便!
現在,爬取一張圖片的方法我們學會了。那怎么才能批量下載小姐姐的照片呢?(我的鍵盤早已饑渴難耐!)

第一步,我們先復制本頁面的地址:
url = http://www.521609.com/daxuexiaohua
操作:需要將每一張圖片的地址解析出來,然后對圖片地址發起請求即可
寫代碼之前,我們先來了解下 瀏覽器開發者工具:
分析瀏覽器開發者工具中Elements和network這兩個選項卡對應的頁面源碼數據有何不同之處?

結論:如果在進行數據解析的時候,一定是需要對頁面布局進行分析,如果當前網站沒有動態加載的數據就可以直接使用Elements對頁面布局進行分析。否則只可以使用network對頁面數據進行分析。
很顯然,當前網站沒有動態加載的數據。那么就可以直接使用Elements對頁面布局進行分析
爬取前:我們需要使用Elements捕獲出圖片地址,可以看到圖片地址在源碼里的<li>節點里:

復制<li>節點里的源碼:

# 此處為復制出的源碼:<li><a href="/daxuexiaohua/11124.html"> <img src="/uploads/allimg/140717/1-140GF92J7-lp.jpg" width="160" height="220" border="0" alt=" 中國傳媒大學上官青桐 "> </a><br><a href="/daxuexiaohua/11124.html" ><b>中國傳媒大學上官青桐</b></a></li>
具體代碼實現下載步驟:(咱們課程主要講解爬蟲的抓包方式和解析方法,具體正則寫法等基礎教程,可以關注我的Python基礎教程)
import reimport os# 1.捕獲到當前首頁的頁面源碼數據url1 = http://www.521609.com/daxuexiaohuapage_text = requests.get(url=url1, headers=headers).text# 2.從當前獲取的頁面源碼數據中解析出圖片地址,并用正則寫出:ex = <li>.*?<img src="(.*?)" width=.*?</li># 正則寫好后我們現在開始獲取img_src_list = re.findall(ex, page_text)print(img_src_list)# 我們發現打印的是[]。這是因為源碼里有空格和換行# 代碼應該是:img_src_list = re.findall(ex, page_text, re.S)print(img_src_list)# 現在我們看出獲取的地址只是部分,例:/uploads/allimg/140717/1-140GF92J7-lp.jpg# 我們可以直接在網頁上復制圖片地址http://www.521609.com/uploads/allimg/140717/1-140GF92J7-lp.jpg# 加上前綴,遍歷列表,獲取完整地址.進行請求# 新建個文件夾存儲圖片dirName = ImgLibsif not os.path.exists(dirName): os.mkdir(dirName)for src in img_src_list: src = http://www.521609.com src imgPath = dirName / src.split(/)[-1] # 圖片名稱 urllib.request.urlretrieve(src, imgPath) print(imgPath, 下載成功!!!)
結果我們就一次性下載完小姐姐的照片了!

關注 Python濤哥,學習更多Python知識!
歡迎分享轉載→http://www.avcorse.com/read-413931.html
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖