Python爬取王者榮耀英雄頭像
阿新 • • 發佈:2022-04-15
前言
今天王者榮耀S27賽季更新了,賽季更新不僅優化了區域性的畫面,而且在效能上得到了提升,新賽季的開始,王者峽谷又開始了
新的一輪競技,王者榮耀一款陪伴我走過大學時光的網路手遊。
基於此作者運用所學的爬蟲知識,藉助Python工具爬取王者榮耀官網的英雄人物頭像,Python爬蟲爬取網頁圖片可以分為四步:
明確目的、傳送請求、資料解析、儲存資料,下面一起學習。
獲取本文完整程式碼
明確目的
開啟王者榮耀英雄介紹主頁,該主頁包含很多種英雄的頭像圖片,主頁網址連結如下。
https://pvp.qq.com/web201605/herolist.shtml
傳送請求
使用requests庫傳送請求,返回狀態碼顯示為200,伺服器連線正常。
Python學習交流Q群:906715085### import requests u='https://pvp.qq.com/web201605/herolist.shtml' response=requests.get(u) print('狀態碼:{}'.format(response.status_code)) if response.status_code != 200: pass else: print("伺服器連線正常")
資料解析
在資料解析之前,需要提前安裝pyquery,pyquery庫類似於Beautiful Soup庫,初始化的時候,需要傳入HTML文字來初始化一個
PyQuery物件,它的初始化方式包括直接傳入字串,傳入URL,傳入檔名等等,這裡傳入URL,並且查詢節點。
Python學習交流Q群:906715085### #解析資料 from pyquery import PyQuery doc=PyQuery(html) items=doc('.herolist>li')#.items() print(items)
同時遍歷,使用find函式查詢子節點,遍歷爬取圖片URL和圖片名。
for item in items: url=item.find('img').attr('src') #print(url)urls='http:'+url name=item.find('a').text() #print(name) url_content=requests.get(urls).content
儲存資料
最後儲存資料,需要提前新建一個資料夾用於資料儲存,同時,儲存資料的程式碼需要寫在for迴圈裡面,
不然只會儲存一張圖片。
with open('C:/Users/尚天強/Desktop/王者榮耀picture/'+name+'.jpg','wb') as file: file.write(url_content) print("正在下載%s......%s"%(name,urls))
同時加一個計時器,用於計時圖片爬取的時長,這裡顯示圖片爬取共計耗時7.03秒。
import time start=time.time() … end=time.time() print('圖片爬取共計耗時{:.2f}秒'.format(end-start))
爬取過程動態演示如下,執行過程很快。
以上我們成功將王者榮耀的英雄人物頭像爬取下來,程式碼檔案中有高清頭像。
將程式碼進行封裝,完整版程式碼如下,如果你也感興趣的話可以自己實際執行試一試,爬取生成結果。
Python學習交流Q群:906715085### import time start=time.time() import requests from pyquery import PyQuery #確定目標 url="https://pvp.qq.com/web201605/herolist.shtml" #傳送請求 html=requests.get(url).content #print(html) #解析資料 doc=PyQuery(html) items=doc('.herolist>li').items() #print(items) for item in items: url=item.find('img').attr('src') #print(url) urls='http:'+url name=item.find('a').text() #print(name) url_content=requests.get(urls).content #儲存資料 with open('C:/Users/尚天強/Desktop/王者榮耀picture/'+name+'.jpg','wb') as file: file.write(url_content) print("正在下載%s......%s"%(name,urls)) print("下載完畢") end=time.time() print('圖片爬取共計耗時{:.2f}秒'.format(end-start
最後:
今天給大家分享的王者頭像的爬取到這裡就結束了,程式碼就給大家放在上面了,需要的小夥伴就自己領
取了,下一篇見啦。