圖片爬取
資料決議原理概述
- 決議的區域的文本內容都會在標簽之間或者標簽對應的屬性中進行存盤
- 所以在進行資料決議時,應該分為兩步
1.進行指定標簽的定位
2.對標簽或標簽對應的屬性中存盤的資料進行提取
案例:
這里爬取的是糗事百科中的圖片部分,我們可以先檢查一下頁面的html,

可以看到,所有圖片都以這樣的標簽形式存盤在頁面中,所以我們要想爬取頁面上的圖片,首先應該先獲取頁面的html檔案,然后以正則運算式,讓圖片的標簽與整個html進行匹配,從而獲取到所有圖片的src,代碼如下:
if __name__ == '__main__':
headers = {
"User-Agent": "Mozilla/5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 88.0.4324.150 Safari / 537.36"
}
# 創建一個檔案夾 保存所有圖片
if not os.path.exists("./qiutuLibs"):
os.mkdir("./qiutuLibs")
url="https://www.qiushibaike.com/imgrank/page/%d/"
for pageNum in (1,13):
new_url=format(url%pageNum)
# 使用正則對圖片進行決議——聚焦爬蟲
ex='<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'
page_text = requests.get(url=new_url, headers=headers).text
img_src_list=re.findall(ex,page_text,re.S)
for src in img_src_list:
src="https:"+src
img_data=requests.get(url=src,headers=headers).content
# 圖片名稱
img_Name=src.split('/')[-1]
img_Path='./qiutuLibs/'+img_Name
with open(img_Path,"wb") as fp:#存盤二進制的資料,用wb,同時也不需要指定編碼
fp.write(img_data)
print(img_Name+"下載成功")
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/259475.html
標籤:python
