查看: 1718|回复: 4
打印 上一主题 下一主题

[交流] 一次爬取我的世界wiki的经历

[复制链接]

22

主题

317

回帖

174

积分

Lv.4 怪物猎人

UID
373726
小麦
3
金锭
608
下界之星
0

开发者认证勋章

跳转到指定楼层
楼主
发表于 2022-2-17 20:47:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 IP:山西
本帖最后由 sevenstars 于 2022-2-17 20:52 编辑

小地图的生物雷达功能需要所有生物的头像,分辨率为16x16。如果在游戏中寻找生物贴图并依次截图的话,不仅非常麻烦,而且最终效果也不好。观察到Wiki中的“基岩版数据值”界面拥有所有生物的头像,这就是我们需要的图片:

但是对准图片右键却发现并没有另存为的选项,说明这不是一张单独的图片。按下Ctrl+Shift+C检查这个元素对应的html代码,发现这张小图是大图的一部分,因此我们找到了大图的链接和对应的uv位置。

由于网易的小地图接口AddEntityMarker必须传一张图片,而不是传一张大图并设置其uv,因此下一步我们应该按照生物的id与对应的uv,从大图上截取出需要的小图。
首先检查html代码,发现所有需要的数据都在tbody元素中,右键该元素,选择“编辑为HTML”。

将原始数据复制到Notepad++中。

这里,我们使用正则表达式提取出需要的元素,按下Ctrl+M。
<td>[a-z_]+[0-9]*</td>
-[0-9]*px -[0-9]*px
用上方的两个正则表达式完成了对所需内容的标记。

点击“复制标记文本”,拷贝到一个新文件中。

然后,使用普通的替换删除<td>,</td>,-,px等多余内容,然后使用python处理字符串,获得生物id与uv位置的对应表:

然后使用PIL库的crop方法,遍历mobs,传入uv位置,即可生成对应的小图了。

最后,终于得到了最新的小地图icon,大功告成。
此贴仅用于学习交流,未经允许请勿转载。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

2

查看全部评分

2

主题

7

回帖

5

积分

Lv.1 新手木匠

UID
8094679
小麦
1
金锭
47
下界之星
0
沙发
发表于 2022-2-17 20:55:04 | 只看该作者 IP:山西
awesome

5

主题

10

回帖

9

积分

Lv.1 新手木匠

UID
8741835
小麦
0
金锭
14
下界之星
0
板凳
发表于 2022-2-18 11:02:07 | 只看该作者 IP:广东
大佬,能看看源码学习学习嘛?

22

主题

317

回帖

174

积分

Lv.4 怪物猎人

UID
373726
小麦
3
金锭
608
下界之星
0

开发者认证勋章

地板
 楼主| 发表于 2022-2-20 00:59:49 | 只看该作者 IP:山西
能够快乐人 发表于 2022-2-18 11:02
大佬,能看看源码学习学习嘛?

我分享这个的目的是学习交流,源代码截图里面全都有。之所以不公开处理结果,是想让大家自己动手。如果你真的需要一些生物icon的话,这篇教程的详细程度足以让任何一位初学者看懂。

18

主题

48

回帖

36

积分

Lv.2 石器学徒

UID
183776
小麦
1
金锭
591
下界之星
0
地下室
发表于 2022-2-21 22:48:36 | 只看该作者 IP:广东
顶!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部