使用Python爬取王者榮耀英雄皮膚壁紙

王者榮耀官網上的每一個英雄的皮膚圖都是高清的,而且有的皮膚很好看,可以使用python爬取下來當作壁紙。

爬取結果


使用Python爬取王者榮耀英雄皮膚壁紙

隨機選一張看看

使用Python爬取王者榮耀英雄皮膚壁紙

代碼

爬取的代碼在這裡就直接給大家分享出來,喜歡的朋友,可以關注、點贊加轉發。

<code>import requests
import json
from bs4 import BeautifulSoup
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5958.400 SLBrowser/10.0.3533.400'}
def getSoup(url):
resp = requests.get(url, headers=headers)
resp.encoding = 'gbk'
soup = BeautifulSoup(resp.text, 'lxml')
return soup

#獲取json數據,嘗試得知存在有英雄的SkinName信息缺失或不全的情況
#所以這裡只取用json文件中英雄id和名字

#獲取json數據,並解析成存有英雄id與名字的列表[[id,name],[id1,name1].......]
def jsonToHeroInfoList(jsonURL):
resp =requests.get(jsonURL)
jsonData = json.loads(resp.text)
heroInfoList = []
for data in jsonData:
hero_info =[]
hero_info.append(data['ename'])
hero_info.append(data['cname'])
heroInfoList.append(hero_info)
return heroInfoList

#通過存有英雄id與名字的列表[[id,name],[id1,name1].......],獲取皮膚名字和圖片的src
def getImgSrc(heroInfoList):
skinSrcList=[]
for heroInfo in heroInfoList:
heroName = heroInfo[1]
heroId = heroInfo[0]
#通過英雄id,進入英雄詳情頁獲取皮膚名字和src

detailUrl = "https://pvp.qq.com/web201605/herodetail/%s.shtml"%heroId
soup = getSoup(detailUrl)
ul = soup.find('ul', class_="pic-pf-list pic-pf-list3")
skinNames = ul['data-imgname'].split('|')
for index in range(len(skinNames)):
skinName =heroName+"-"+skinNames[index].split('&')[0]
imgSrc = "http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/%s/%s-bigskin-%s.jpg"%(heroId,heroId,index+1)
skinSrcList.append([skinName,imgSrc])
return skinSrcList

#通過skinSrcList[[skinname,src],[skinname2,src2]...........]逐個下載圖片
def downLoadImg(skinSrcList):
for src in skinSrcList:
skinName = src[0]
src = src[1]
resp = requests.get(src)
f = open('D:/圖庫/圖/王者榮耀英雄皮膚/%s.jpg'%skinName , 'wb')
print("正在下載: "+skinName+" .....")
f.write(resp.content)
f.close()

Json_url = "https://pvp.qq.com/web201605/js/herolist.json"
heroInfoList = jsonToHeroInfoList(Json_url)
Imgsrc = getImgSrc(heroInfoList)
downLoadImg(Imgsrc)/<code>


分享到:


相關文章: