您的位置:首页 > 编程语言 > Python开发

python爬取LOL英雄皮肤

2020-07-14 04:44 357 查看

我的博客:https://justlovesmile.top

  • 编写爬虫获取英雄联盟所有英雄的全部皮肤
  • 需要库:
    - requests
    - re
    - json
    - os
  • 效果:在该代码文件目录下生成n个Hero文件夹保存皮肤图片。
"""
Date: 2019.11.7
Author: Justlovesmile
Language: python3
"""
import requests
import re
import json
import os

def getHtml(url):
try:
r=requests.get(url)
r.raise_for_status()
r.encoding=r.apparent_encoding
except:
print(url+"爬取失败!")
else:
response = r.text
getInfo(response)

def getInfo(res):
lists=re.findall(r'"keys":(.*?),"data"',res)
#print(lists)
hero_id=json.loads(lists[0])
#print(hero_id)
for hero in hero_id.values():
getSkin(hero)

def getSkin(hero):
url='https://lol.qq.com/biz/hero/'+hero+'.js'
try:
r=requests.get(url)
r.raise_for_status()
r.encoding=r.apparent_encoding
except:
print(url+"爬取失败!")
else:
html=r.text
num=re.findall(r'"id":"(\d{4,6})","num"',html)
for i in range(len(num)):
img_url='https://game.gtimg.cn/images/lol/act/img/skin/big' + num[i] + '.jpg'
save_img(hero,img_url)

def save_img(hero,img_url):
root=hero+"\\"
path=root+img_url.split('/')[-1]
try:
if not os.path.exists(root):
os.mkdir(root)
if not os.path.exists(path):
r=requests.get(img_url)
with open(path,'wb') as f:
f.write(r.content)
f.close()
print("文件保存成功!")
else:
print("文件已存在!")
except:
print("爬取失败!")
print(img_url+"已下载")

def main():
url="https://lol.qq.com/biz/hero/champion.js"
getHtml(url)

if __name__ == "__main__":
main()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: