Java爬取英雄联盟官网,全英雄皮肤背景图片

news/2024/11/24 13:24:21/

Java爬取英雄联盟官网,全英雄皮肤背景图片

    • 1.首先获取全英雄名
    • 2.创建全英雄皮肤收藏的文件夹
    • 3.根据英雄id,和英雄名称,保存进对应的英雄名称文件夹中。
    • 4.以下方法用来测试
    • https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js!!!
    • 5.完整版来咯
    • 6.看成品

1.首先获取全英雄名

去30行Python代码爬取英雄联盟全英雄全皮肤页面,里面有 代码的实现思路,大家可以去看看。以下代码省略了几个步骤,实现了获取116位英雄的皮肤,升序36位英雄皮肤因程序执行太慢并未下载,感兴趣的朋友欢迎私信。

下面这个全英雄名称中,前116位英雄,经过测试以及进行了排序,后36位英雄因为英雄id编号排序跨度较大暂未进行排序,排序完成的结果就是在英雄名称前补全空位即可完成排序。

public static List<String> heroList() {String[] strings = {"黑暗之女 安妮", "狂战士 奥拉夫", "正义巨像 加里奥", "卡牌大师 崔斯特", "德邦总管 赵信", "无畏战车 厄加特", "诡术妖姬 乐芙兰", "猩红收割者 弗拉基米尔", "远古恐惧 费德提克", "正义天使 凯尔","无极剑圣 易", "牛头酋长 阿利斯塔", "符文法师 瑞兹", "亡灵战神 赛恩", "战争女神 希维尔", "众星之子 索拉卡", "迅捷斥候 提莫", "麦林炮手 崔丝塔娜", "祖安怒兽 沃里克", "雪原双子 努努和威朗普","赏金猎人 厄运小姐", "寒冰射手 艾希", "蛮族之王 泰达米尔", "武器大师 贾克斯", "堕落天使 莫甘娜", "时光守护者 基兰", "炼金术士 辛吉德", "痛苦之拥 伊芙琳", "瘟疫之源 图奇", "死亡颂唱者 卡尔萨斯","虚空恐惧 科加斯", "殇之木乃伊 阿木木", "披甲龙龟 拉莫斯", "冰晶凤凰 艾尼维亚", "恶魔小丑 萨科", "祖安狂人 蒙多医生", "琴瑟仙女 娑娜", "虚空行者 卡萨丁", "刀锋舞者 艾瑞莉娅", "风暴之怒 迦娜","海洋之灾 普朗克", "英勇投弹手 库奇", "天启者 卡尔玛", "瓦洛兰之盾 塔里克", "邪恶小法师 维迦"," "," ","巨魔之王 特朗德尔", "诺克萨斯统领 斯维因", "皮城女警 凯特琳", " ", " ", "蒸汽机器人 布里茨", "熔岩巨兽 墨菲特","不祥之刃 卡特琳娜", "永恒梦魇 魔腾", "扭曲树精 茂凯", "荒漠屠夫 雷克顿", "德玛西亚皇子 嘉文四世", "蜘蛛女皇 伊莉丝", "发条魔灵 奥莉安娜", "齐天大圣 孙悟空", "复仇焰魂 布兰德", "盲僧 李青"," "," ","暗夜猎手 薇恩", "机械公敌 兰博", "魔蛇之拥 卡西奥佩娅"," "," ","水晶先锋 斯卡纳", " ","大发明家 黑默丁格","沙漠死神 内瑟斯", "狂野女猎手 奈德丽", "兽灵行者 乌迪尔", "圣锤之毅 波比", "酒桶 古拉加斯","不屈之枪 潘森", "探险家 伊泽瑞尔", "铁铠冥魂 莫德凯撒", "牧魂人 约里克", "离群之刺 阿卡丽", "狂暴之心 凯南", "德玛西亚之力 盖伦", " ", " ","曙光女神 蕾欧娜", "虚空先知 玛尔扎哈", "刀锋之影 泰隆","放逐之刃 锐雯", " ", " ", " ","深渊巨口 克格莫", " ","暮光之眼 慎", "光辉女郎 拉克丝", " ","远古巫灵 泽拉斯", "龙血武姬 希瓦娜", "九尾妖狐 阿狸", "法外狂徒 格雷福斯", "潮汐海灵 菲兹", "不灭狂雷 沃利贝尔","傲之追猎者 雷恩加尔", " ", " ","惩戒之箭 韦鲁斯", "深海泰坦 诺提勒斯", "机械先驱 维克托", "北地之怒 瑟庄妮", "无双剑姬 菲奥娜", "爆破鬼才 吉格斯", " ","仙灵女巫 璐璐", " ","荣耀行刑官 德莱文", "战争之影 赫卡里姆","虚空掠夺者 卡兹克", "诺克萨斯之手 德莱厄斯", " ", " ", " ","未来守护者 杰斯", "冰霜女巫 丽桑卓", " ", " ", " ","皎月女神 黛安娜", " ","德玛西亚之翼 奎因","暗黑元首 辛德拉", " ","铸星龙王 奥瑞利安索尔", " ", " ", " ", " ","影流之镰 凯隐", "暮光星灵 佐伊","荆棘之兴 婕拉", " ","虚空之女 卡莎", " ","星籁歌姬 萨勒芬妮", " ", " ","迷失之牙 纳尔", " ", " ", " ","生化魔人 扎克", " ", " ","疾风剑豪 亚索", " ", " ", " ","虚空之眼 维克兹", " ","岩雀 塔莉垭", "青钢影 卡蜜尔", "弗雷尔卓德之心 布隆","戏命师 烬", "永猎双子 千珏", "暴走萝莉 金克丝", "河流之王 塔姆", "涤魂圣枪 赛娜", "圣枪游侠 卢锡安", "影流之主 劫", "暴怒骑士 克烈", "时间刺客 艾克", "元素女皇 奇亚娜","皮城执法官 蔚", "暗裔剑魔 亚托克斯", "唤潮鲛姬 娜美", "沙漠皇帝 阿兹尔", "魔法猫咪 悠米", "沙漠玫瑰 莎弥拉", "魂锁典狱长 锤石", "海兽祭司 俄洛伊", "虚空遁地兽 雷克塞", "翠神 艾翁","复仇之矛 卡莉丝塔", "星界游神 巴德", "幻翎 洛", "逆羽 霞", "山隐之焰 奥恩", "解脱者 塞拉斯", "万花通灵 妮蔻", "残月之肃 厄斐琉斯", "血港鬼影 派克", "封魔剑魂 永恩","腕豪 瑟提", "含羞蓓蕾 莉莉娅"};List<String> strlist = new ArrayList();for (int i = 0; i < strings.length; i++) {String a = strings[i];strlist.add(a);}
//        System.out.println("英雄数:" + strlist.size() + "  " + strlist);return strlist;}

2.创建全英雄皮肤收藏的文件夹

如果不喜欢此方式生成文件夹的朋友,也可以将此方法加入到下面用来保存皮肤背景图片的循环中。

public static void main(String[] args) throws Exception {List<String> stringList = heroList();for (int i = 0 ; i < stringList.size() ; i++){String fileName = stringList.get(i);File file = new File("C:\\Users\\Administrator\\Pictures\\lol英雄图片\\"+fileName);if (!file.exists()){file.mkdirs();}Thread.sleep(2000);}}

3.根据英雄id,和英雄名称,保存进对应的英雄名称文件夹中。

如果不喜欢此方式生成文件夹的朋友,也可以将此方法加入到下面用来保存皮肤背景图片的循环中。

public static void main(String[] args) throws Exception{for (int kk = 0; kk < 188; kk++) {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String startTime = df.format(new Date());System.out.println("开始运行时间:"+startTime);int z = kk;List<String> as = heroList();int c = z - 1;for (int ii = 0; ii < as.size(); ii++) {String ste = as.get(c);List<String> stringList = new ArrayList<>();for (int jj = 0; jj < as.size(); jj++) {String sty = String.format("%03d", jj);stringList.add("https://game.gtimg.cn/images/lol/act/img/skin/big" + z + sty + ".jpg");}for (int i = 0; i < stringList.size(); i++) {try {String url = stringList.get(i);URL url1 = new URL(url);URLConnection uc = url1.openConnection();InputStream inputStream = uc.getInputStream();String picrureName = ste + i;FileOutputStream out = new FileOutputStream("C:\\Users\\Administrator\\Pictures\\lol英雄图片\\" + ste + "\\" + picrureName + ".jpg");int j = 0;while ((j = inputStream.read()) != -1) {out.write(j);}inputStream.close();} catch (Exception e) {continue;}}break;}SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String endTime = dfs.format(new Date());System.out.println("程序结束运行时间:"+endTime);long min = dateDiff(startTime,endTime,"yyyy-MM-dd HH:mm:ss");System.out.println("程序运行时间:"+min+" 分钟");System.out.println("保存图片次数:"+kk);System.out.println("                      ");}}

4.以下方法用来测试

https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js!!!

这个地址包含全英雄的英雄ID,英雄名称,其它信息无关紧要。需要转JSON后进行使用。

public static void main(String[] args) throws Exception {}
//https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js
public static void main(String[] args) {//完整版里有完整字符串String a =[{\"heroId\":\"1\",\"name\":\"\\u9ed1\\u6697\\u4e4b\\u5973\",\"al  ”;List<String> strlist = new ArrayList();List heroList = new ArrayList<>();JSONObject jsonObject = JSONObject.parseObject(a);heroList = (List) jsonObject.get("hero");System.out.println(jsonObject);System.out.println(heroList);for (int i = 0 ; i < heroList.size() ; i++){Hero hero = (Hero) heroList.get(0);String heroId = hero.getHeroId();System.out.println(heroId);System.out.println(heroList.get(0));break;}}
//时间差
public static long dateDiff(String startTime, String endTime, String format) throws Exception {//按照传入的格式生成一个simpledateformate对象SimpleDateFormat sd = new SimpleDateFormat(format);long nd = 1000*24*60*60;//一天的毫秒数long nh = 1000*60*60;//一小时的毫秒数long nm = 1000*60;//一分钟的毫秒数long ns = 1000;//一秒钟的毫秒数long diff;//获得两个时间的毫秒时间差异diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();long day = diff/nd;//计算差多少天long hour = diff%nd/nh;//计算差多少小时long min = diff%nd%nh/nm;//计算差多少分钟long sec = diff%nd%nh%nm/ns;//计算差多少秒//输出结果System.out.println("时间相差:"+day+"天"+hour+"小时"+min+"分钟"+sec+"秒。");return min ;}

5.完整版来咯

Java爬取英雄联盟官网,全英雄皮肤背景图片。

6.看成品

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/287939.html

相关文章

以《英雄联盟》为例,看影响MOBA游戏策略的3个层面

从《星际争霸》中的“Aeon of Strife”这张地图开创“MOBA”这一概念以来&#xff0c;经过20年左右的发展&#xff0c;MOBA游戏从画面、内容到理论体系都出现了显着的跨越。 在不同的背景下不断引入诸如英雄克制&#xff0c;地图资源&#xff0c;符文天赋等全新的概念&#x…

lol最克制诺手的英雄_《英雄联盟》中什么英雄最克制诺克萨斯之手?

本人最高分段郊区宗师&#xff0c;峡谷之巅最高钻一崽&#xff0c;各个号加起来三千到四千场诺手&#xff0c;主玩上单位&#xff0c;只凭一手诺克上分。 也打过很多号&#xff0c;都是从黄铜白银开始打到钻石&#xff0c;有诺手选的话只选诺手。单排上路平均胜率75到80。 本文…

云顶之弈游戏法师的技能如何呢?

玩家们应该都知道在云顶之弈游戏中每个棋子都有着自己独特的技能和属性吧&#xff01;今天j就为小伙伴们介绍一下云顶之弈游戏中的棋子之法师系列&#xff0c;一起来了解有哪些法师&#xff0c;这些法师又有怎么样的技能吧&#xff01;以下的内容都是小编精心准备的&#xff0c…

英雄联盟英文台词

雷恩加尔&#xff1a; Tonight,we hunt. 今晚&#xff0c;猎个痛快。 迦娜&#xff1a; The tempest is at your command. 风之化身听候您的差遣。 嘉文四世&#xff1a; By my will - this shall be finished. 犯我德邦者&#xff0c;虽远必诛&#xff01; 杰斯&#xff1a; I…

卷毛机器人符文_卷毛S5风女辅助天赋符文教学攻略

技能加点顺序&#xff1a;R>E>W>Q 技能加点一般选择主E副W&#xff0c;一级Q;如果需要打一级团一级Q也是可以的。另外&#xff0c;卷毛在迦娜改动后的前期有过主W副E的打法。 加点分析&#xff1a;主E是为了能够更好的保护ADC和防御塔&#xff0c;并且&#xff0c;迦娜…

英雄联盟里输出QWER连招的英雄

[诡术妖姬-乐芙兰] 杀伤力&#xff1a;9 连招&#xff1a;W,Q,R,E (或者 W,R,Q,E 或 E,W,R,Q 或 E,Q,R,W ) 描述&#xff1a;乐芙兰的QWER技都是全攻型的技能。整套连招杀伤高。 缺点&#xff1a;操作难度较高&#xff0c;需要较高手速 和 熟练度&#xff0c;需要在很短的时间内…

基于英雄联盟的知识图谱问答系统

该文介绍了英雄联盟知识图谱的构建以及搭建一个简单的基于知识图谱的英雄联盟问答系统。需要提前安装好以下依赖&#xff1a; py2neo版本&#xff1a;py2neo-2021.2.3 neo4j版本&#xff1a;neo4j-4.4.5数据来源于&#xff1a;英雄联盟宇宙知识图谱 - 图谱 - 开放知识图谱 &am…

lol12.11服务器维护,英雄联盟11.1版本更新维护公告 装备调整新赛季开始

2021年1月7日&#xff0c;在今天英雄联盟的官方发布了最新的11.1版本的更新维护公告&#xff0c;其中对装备进行了调整&#xff0c;新赛季开始&#xff0c;下面就来为大家分享一下这次的更新维护公告内容。 LOL将在1月7日凌晨2点开始全区停机维护(请注意:1月7日1点将关闭排位赛…