python+flask

Python爬取王者荣耀所有英雄以及高清大图

2019-01-11  本文已影响2270人  凌烟醉卧

爬虫的原理:

需要安装的库:

王者荣耀的英雄列表
https://pvp.qq.com/web201605/herolist.shtml
官网部分展示图:

点击头像进去如下:
看下黄忠


我要获取的就是王者荣耀现在所有的88个英雄以及详情页英雄的皮肤,还有高清图片。

废话不多说,搞起!!!!

首先,搞定开头说的前两步,请求网络和提取数据!

headers = {
     "user-agent": '"你自己的user-agent"
 }
 url =“抓取网页的目标url”
 requestResult = requests.get(url, headers=headers)

 resultJson = json.loads(requestResult.text)
 print(type(resultJson))
 heros = []

 for li in resultJson:
     hero = {}
     hero['ename'] = li['ename']
     hero['cname'] = li['cname']
     hero['skin_name'] = li['skin_name']
     hero['skin_name'] = str(hero['skin_name']).split('|')[::-1]

     _ename = str(hero['ename'])

     index = 1
     smallImages = []
     bigImages = []
     # 获取某个英雄的所有皮肤和高清大图
     for item in hero['skin_name']:
         # url是分析得出,并且需要拼接好
         singleSmallImage ='某个英雄的所有皮肤中的相对应的一个url‘
         smallImages.append(singleSmallImage)
         singleBigImage =‘某个英雄的高清皮肤中的相对应的一个url'
         bigImages.append(singleBigImage)

         hero['smallimages'] = smallImages
         hero['bigimages'] = bigImages
         index = index + 1
     _imgurl = '这个是英雄默认皮肤的url'
     hero['img'] = _imgurl
     heros.append(hero)

     heroTag = {'totalhero': heros}

上面用到的需要导入

import requests

我这里不需要Dom树形结构,没有用到BeautifulSoup

最后保存数据,这里保存为hero_json.json文件

 with open('hero_json.json', 'w', encoding='utf-8') as fp:
        json.dump(data, fp, ensure_ascii=False)
    return 'ok'

hero_json.json文件整理:


赵云的数据

bigimages中的最后一条数据为赵云的“引擎之心”高清皮肤

smallimages为赵云的七款皮肤小图,不看了。

手机上的效果:


这里遇到坑了,最开始获取的所有英雄的列表数据是没有的,最后才看到是通过JavaScript实现的动态展示。

此文用作学习,以此记录!!!

如果此文对您有帮助,请点个赞让更多的人看到!

上一篇下一篇

猜你喜欢

热点阅读