使用python下载英雄联盟英雄图片(学习简单爬虫)

2018年11月1日22:51:58 发表评论 3,957 views

最近刚学习的python爬虫,效果还可以,使用了几种例子,可以参考一下

import requests,re,json

#为何名字和图片不乱
#获取js源代码和英雄id
#拼接url地址
#获取下载图片名称
#下载图片

#建议使用驼峰命名法,注释必须(因为不但可以帮助个人理解,并且在复习的时候可以加深记忆,自己在回看的时候不必去一遍一遍的去推演算法,另外给别人看的时候也很清晰易懂,据说欧美的软件公司审核注释比审核代码还严格,这
#也许是他们合作十分高效并且软件开发十分快速的原因吧,坚持每天注释一个,顺便复习代码,有的代码还要求会背)
def getLOLImages():#(定义获取图片函数)
#获取js源代码
url_js = 'http://lol.qq.com/biz/hero/champion.js'
res_js = requests.get(url_js).content #.text直接是字符串 content一般是获取图片和视频内容

#转成字符串
html_js = res_js.decode()
#通过正则匹配英雄ID
req ='"keys":(.*?),"data":' # 其中。*?是匹配全部的意思
list_js = re.findall(req, html_js) #整理出序列,这步下面可以print一下看看

#str _>dict
dict_js = json.loads(list_js[0])
# print(dict_js)
pic_list = []
for key in dict_js:
# print(key,dict_js[key])
# http: // ossweb - img.qq.com / images / lol / web201310 / skin / big51000.jpg

for i in range(30): #这个for整理不存在的图片
num = str(i) #为什么num不能用
if len(num) == 1:
hero_num = "00"+ num #001
elif len(num) ==2:
hero_num = "0" + num #011
numstr = key + hero_num
# print(numstr)
downurl = "http://ossweb-img.qq.com/images/lol/web201310/skin/big"+ numstr +".jpg" #开始下载英雄联盟图片
# print(downurl)
pic_list.append(downurl)
#获取图片下载名称
# print(dict_js.keys())
list_filepath = []
path = "C:\\LOL\\"
for name in dict_js.values():
for i in range(30):
file_path = path + name + str(i)+".jpg"
# print(file_path)
list_filepath.append(file_path)
# print(list_filepath)

#下载图片
n = 0 #过滤无法下载的图片,返回200为不存在的图片,所以顾虑掉
for picurl in pic_list:
res = requests.get(picurl)
# print(res)
n +=1
if res.status_code == 200:

print("正在下载:%s"%list_filepath[n])
print(list_filepath[n])
print(picurl)
f = open(list_filepath[n],"wb")
f.write(res.content)
f.close

# print(res_js)
getLOLImages()

 

哪里不是特别懂可以在下面留言,我看到会尽量回复的

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: