登录 注册

SIF2每首歌平均键分数据爬取

由于近期的爬塔活动很需要这个数据,因此就简单做了一下

首先前往萌娘百科的歌曲note数界面运行获取note脚本

然后前往llwiki的模拟界面,模拟很多歌以后运行获取分数脚本

//萌娘百科的歌曲n数
str="data=[";
b="";
$(".moe-wide-table-wrapper table").each(function (){
	$(this).find("tbody tr").each(function (){
		var td=$(this).find("td");
		var name=td.eq(2).find("a").html();
		if (name.indexOf("'")>0){
			name=name.replace("'","\\\'");
		}
		var n=td.eq(12).html();
		n=n.substring(0,n.length-1);
		if (n=="-"){
			n=td.eq(10).html();
		}
		str+=b+"['"+name+"','"+n+"']";
		b=",";
	});
});
str+="];";


//分数
str="score=[";
b="";
$("#formation-result").children().each(function (){
	var name=$(this).find("div").eq(0).html();
	var diff=name.substr(-6);
	if (diff=="MASTER" || diff=="EXPERT"){
		name=name.substring(name.indexOf(" ")+1,name.length-7);
		if (name.indexOf("'")>0){
			name=name.replace("'","\\\'");
		}
		var s=$(this).find("span").eq(2).html();
		s=s.substring(4,s.length-1);
		str+=b+"['"+name+"','"+s+"','"+diff+"']";
		b=",";
	}
});
str+="];";

然后使用以下页面和js就可以做出来键分,复制到excel里排序即可(懒得在JS里排序了= =)

for (var i=0;i<score.length;i++){
	var found=999999;
	for (var j=0;j<data.length;j++){
		var namelen=Math.min(10,score[j][0].length);
		if (data[j][0].substring(0,namelen)==score[i][0].substring(0,namelen)){
			if (found<10000){
				found=999999;
				j=999999;
			}else{
				found=j;
			}
		}
	}
	if (found<10000){
		var tr=$(document.createElement("tr"));
		tr.html("<td>"+data[found][0]+"</td><td>"+score[i][1]+"</td><td>"+data[found][1]+"</td><td>"+score[i][2]+"</td><td>"+(score[i][1]/data[found][1])+"</td>");
		$("#score").append(tr);
	}else{
		var tr=$(document.createElement("tr"));
		tr.html("<td>"+score[i][0]+"</td><td>"+score[i][1]+"</td>");
		$("#error").append(tr);
	}
}

以下是HTML

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<title>平均键分</title>
		<meta name='viewport' content='width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no' />
		<script src="/lib/js/jquery.js"></script>
	</head>
	<body>
		<p>键分</p>
		<table id="score">
			<tr>
				<td>歌名</td>
				<td>分数</td>
				<td>note</td>
				<td>难度</td>
				<td>键分</td>
			</tr>
		</table>
		<p>未找到的数据</p>
		<table id="error">
			<tr>
				<td>歌名</td>
				<td>分数</td>
			</tr>
		</table>
		<script src="note.js?<?php echo rand();?>"></script>
		<script src="score.js?<?php echo rand();?>"></script>
		<script src="calculate.js?<?php echo rand();?>"></script>
	</body>
</html>

2023
11 19
上一篇
Older
下一篇
Newer
评论
0
点击
153
发布
我是标题
我是文字
我是标题
我是文字
用户名
密码
用户名
密码
重复密码
努力的加载中.....