Skip to content

Latest commit

 

History

History
151 lines (124 loc) · 4.14 KB

存在问题及解决方案.md

File metadata and controls

151 lines (124 loc) · 4.14 KB

Table of Contents


存在问题及解决方案

1.herolist.json:英雄列表数据有问题

1.1数据不规范

主要是skin_name的问题,不规范,有的有该键值对,有的没有;有些第一个是title(伴生皮肤),有的不是。在读取数据时,会比较麻烦。新英雄可能没有skin_name,马超skin_name不存在,如果要取值就会报错。

1.1解决方案(已采用)

  • 取skin_name键的值之前,先判断是否有这个键。
  • 将title和skin_name合成一个列表,然后用集合去重。

如下面示例中:

[ 
	{
        "ename": 511,
        "cname": "猪八戒",
        "title": "无忧猛士",
        "new_type": 0,
        "hero_type": 3,
        "skin_name": "无忧猛士|年年有余"
    },
    {
        "ename": 529,
        "cname": "盘古",
        "title": "破晓之神",
        "new_type": 0,
        "hero_type": 1,
        "skin_name": "破晓之神"
    },
    {
        "ename": 505,
        "cname": "",
        "title": "鹿灵守心",
        "new_type": 0,
        "hero_type": 6,
        "skin_name": ""
    },
    {
        "ename": 506,
        "cname": "云中君",
        "title": "流云之翼",
        "new_type": 0,
        "hero_type": 4,
        "hero_type2": 1,
        "skin_name": "荷鲁斯之眼"
    },
    {
        "ename": 522,
        "cname": "",
        "title": "星辰之子",
        "new_type": 0,
        "hero_type": 1,
        "skin_name": "归虚梦演"
    },
    {
        "ename": 518,
        "cname": "马超",
        "title": "冷晖之枪",
        "new_type": 1,
        "hero_type": 1,
        "hero_type2": 4
    }
]

1.2 数据未更新

如:马超已有2个皮肤https://pvp.qq.com/web201605/herodetail/518.shtml,但是json文件里没有进行更新(应该要有skin_name键值的)

{
        "ename": 518,
        "cname": "马超",
        "title": "冷晖之枪",
        "new_type": 1,
        "hero_type": 1,
        "hero_type2": 4
}

1.2 解决方案

这个好像难于解决,除非换另一种爬取方式,不是解析现成的json文件,而且爬取网页元素,这种方式比较麻烦。

1.3 部分数据有问题

英雄的title和skin_name的第一个值不一样,已发现的有109, 113, 176

{
        "ename": 109,
        "cname": "妲己",
        "title": "魅力之狐",
        "pay_type": 11,
        "new_type": 0,
        "hero_type": 2,
        "skin_name": "魅惑之狐|女仆咖啡|魅力维加斯|仙境爱丽丝|少女阿狸|热情桑巴"
    },
{
        "ename": 113,
        "cname": "庄周",
        "title": "逍遥梦幻",
        "new_type": 0,
        "hero_type": 6,
        "hero_type2": 3,
        "skin_name": "逍遥幻梦|鲤鱼之梦|蜃楼王|云端筑梦师"
    },
{
        "ename": 176,
        "cname": "杨玉环",
        "title": "霓裳风华",
        "new_type": 0,
        "hero_type": 2,
        "hero_type2": 6,
        "skin_name": "风华霓裳|霓裳曲|遇见飞天"
    },

1.3 解决方案(已采用)

只能当做特殊情况进行处理,遇到时,默认取title。

导致的结果

  • 数据获取不完整,图片下载也就不能完整,应该是少了。
  • 当没有取到skin_name值时,报错。