爬取王者荣耀皮肤-点券领取

1.首先我们要找到所有英雄列表

百度“王者荣耀”进入官网,进入https://pvp.qq.com/,按F12进入调试界面,然后按F5刷新界面,图中标识的herolist.json文件就是我们所需要的英雄列表,其中包括英雄编号、英雄名称、英雄类型、皮肤的名称等信息,在文件上右击复制链接。

import urllib.request
import json
import os
#获取王者荣耀皮肤地址
wz_response_url=urllib.request.urlopen('http://pvp.qq.com/web201605/js/herolist.json')

2.找到每个英雄的全部皮肤

点击首页的“游戏资料”标签页,进入新的界面后点击一个英雄头像进入英雄资料界面,此处我们以后裔为例:

爬取王者荣耀皮肤-点券领取

 

可以看到后裔一共有4个皮肤,右键复制,我们就可以得到其中一个皮肤的网址了

分析一下这个链接,其中“169”是英雄的编号,最后的“1”是该英雄的皮肤编号。到此为止,浏览器已经没有用了,该得到的信息我们都有了。

3.讲述一下如何将图片存放到本地

4.一定要注意转为json格式前的格式,python在进行read或readline等操作时,就针对tuf-8编码文件,会加入BOM(Byte order Mark标识字符序列)来声明编码方式,比如  b'\xef\xbb\xbf

要先进行字符串的切割或者用正则去掉,然后再转json

5.文件里的效果

爬取王者荣耀皮肤-点券领取

 

6.上述完整代码

import urllib.request
import json
import os
wz_response_url=urllib.request.urlopen('http://pvp.qq.com/web201605/js/herolist.json')
wz_herotext=wz_response_url.read().decode('utf-8')
wz_herotext=wz_herotext.encode('utf-8')[3:].decode('utf-8')
hero_json=json.loads(wz_herotext)
print(hero_json)
hero_dir='D:\code\hero\\'
if not os.path.exists(hero_dir): #该文件夹不存在,则..
     os.mkdir(hero_dir)
for i in hero_json:
    c=i['cname']
    e=i['ename']
    a=i['skin_name'].split('|')
    b=len(a)
    for j in range(0,b):
        add='http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/%s/%s-bigskin-%s.jpg'%(e,e,j+1)
        add_name=hero_dir+'%s-%s-%s.jpg'%(e,c,a[j])
        urllib.request.urlretrieve(add,add_name)

 

上一篇:macbook下使用requests库请求网站报错:ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate


下一篇:pyspider.报错