1. 程式人生 > 其它 >Python爬取王者榮耀英雄頭像

Python爬取王者榮耀英雄頭像

前言

今天王者榮耀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

 

最後:

今天給大家分享的王者頭像的爬取到這裡就結束了,程式碼就給大家放在上面了,需要的小夥伴就自己領

取了,下一篇見啦。