admin管理员组文章数量:1619183
前言
我曾踏足山巅,也曾跌落低谷,二者都让我受益良多
最近喜欢在文章前面加入联盟的壁纸,一是为了填充内容,不显得内容干燥,二是这些壁纸看起来确实很帅哈哈
于是花了点时间找了些LOL的壁纸网站,最终锁定了https://lolskin/ 英雄联盟皮肤站,看了下这个站还是很不错的,可以根据英雄和皮肤系列进行筛选查看皮肤,并且支持1920*1080高清壁纸,还是非常nice的,于是花了点时间把皮肤按照系列类别下载下来,最终下载了64个皮肤系列,418个皮肤壁纸,总计84.8M,文末有地址分享
按照系列
按照英雄
分析页面
系列类别的地址是 https://lolskin/sets.html,这个页面是一个典型的列表页,点进去是每个系列的所有英雄皮肤详情页
分析图片连接
列表页面是各种系列皮肤的缩略图,点进去之后是对应皮肤系列的英雄皮肤壁纸,但是这个壁纸是经过压缩的
需要再点进去具体的英雄才能看到真正的1920*1080高清图片
分析两边的图片连接发现,英雄皮肤列表的图片地址是 https://static.lolskin/data/skin308x560/Lulu/6.jpg
,高清图片的连接地址是 https://static.lolskin/data/skin/Lulu/6.jpg
,英雄皮肤列表的图片地址多了308*560,所以需要我们在获取了缩略图的地址后进行替换掉 308 * 560 即可
分析列表页
列表页的每一个皮肤系列都是一个div,这些div都放在一个class为row的div下面
列表页的每个皮肤系列的css query为 div.row > div
皮肤系列的名称的css query为 div.set-name
点击皮肤的详情连接的css query 为 a.full-a
分析英雄列表页
每个英雄的皮肤的css query 为 div.skin-container
英雄皮肤的名字的css query 为 div.skin-name
英雄皮肤的连接地址的css query 为 img
的src
编码
获取列表页
根据上面分析的css选择器,找到对应的
Document document = Jsoup.connect("https://lolskin/sets.html").validateTLSCertificates(false).get();
Elements subjects = document.select("div.row > div");
for (Element subject : subjects) {
//获取每个系列的连接
String subjectHref = subject.select("a").attr("abs:href");
//获取每个系列的名称
String name = subject.select("div.set-name").text().replace("/","");
}
}
获取每个系列英雄皮肤
//请求列表页获取到的每个系列的连接subjectHref,
Document skinListDoc = Jsoup.connect(subjectHref).validateTLSCertificates(false).get();
//获取每个英雄皮肤的位置
Elements skins = skinListDoc.select("div.skin-container");
for (Element skin : skins) {
//获取每个皮肤的名称 ,需要替换掉/,不然创建文件夹会有问题
String skinName = skin.select("div.skin-name").text().replace("/","");
//获取每个皮肤的图片地址
String imgUrl = skin.select("img").attr("abs:src");
//替换上面分析的308x560
imgUrl = imgUrl.replace("308x560", "");
}
下载图片
按照皮肤系列名称来建立文件夹,文件夹里存放对应的英雄皮肤图片
byte[] bytes = Jsoup.connect(imgUrl).validateTLSCertificates(false).ignoreContentType(true).execute().bodyAsBytes();
savaImage(bytes,"D:\\pic\\"+name,skinName+".jpg");
//下载图片
public static void savaImage(byte[] img, String filePath, String fileName) {
BufferedOutputStream bos = null;
FileOutputStream fos = null;
File file = null;
File dir = new File(filePath);
try {
//判断文件目录是否存在
if (!dir.exists()) {
dir.mkdir();
}
file = new File(filePath + "\\" + fileName);
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos);
bos.write(img);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
遇到的问题
- KDA系列皮肤的名字中有/,导致创建文件夹失败,需要替换掉
2. 真正高清图片地址需要将获取到的图片地址替换掉308x560
成果
最终获取了64个皮肤系列,418个皮肤壁纸,共计85M
分析连接
链接:https://pan.baidu/s/1tKR9BiaWFsINtHbV1wYXcw
提取码:zgl2
我用双手成就你的梦想
版权声明:本文标题:全套英雄联盟系列壁纸,确定不来了解一下? 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728792969a1173894.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论