使用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>


分享到:


相關文章: