周末发现追已久的灵异电台主播早已将音频文件上传到自己的网址里,http://117.131.187.206:90/,月夜书单,充满惊喜去看,结果只能一首一首下载,上百首音频文件,还是带密码的网易云链接。工科的我于是想写一个Java程序来代替我去整理下载链接,和提取码,然后交给百度云转存助手啦。
下载链接:
网上搜了一下,说什么迅雷批量下载,没卵用。
话不多说,开干!
1.F12进入开发者工具
经过一番寻找,找到了下载按钮对应的链接和复制密码对应的提取码。
详细代码如下:
<button onclick="cpToClipboard('94xj',this)" type="button">复制密码</button>
<a class="ui-button ui-widget ui-corner-all" onclick="openInNewTab(this)" href="https://pan.baidu.com/s/1ai0ez9oVEMyA62TKPUPXHg" target="_blank">播放&下载</a>
2.复制信息到txt(注:复制<tbody>标签就可以)
复制到txt里
要是用手去提取六百多个文件,呵呵
于是开始 program
1.读取文件
/**
* 以字符为单位读取文件,常用于读文本,数字等类型的文件
*/
File file = new File(fileName);
Reader reader = null;
String[] tempresult = new String[1024*10];
String ch;
int panduan = 1;
try {
System.out.println("\n以字符为单位读取文件内容,一次读多个字节:\n");
// 一次读多个字符
char[] tempchars = new char[1024*300];
int charread = 20;
reader = new InputStreamReader(new FileInputStream(file));
// 读入多个字符到字符数组中,charread为一次读取字符数
while ((charread = reader.read(tempchars)) != -1) {
// 同样屏蔽掉\r不显示
if ((charread == tempchars.length)
&& (tempchars[tempchars.length - 1] != '\r')) {
}
}
reader.close();
2.将提取码与链接都提取出来(两次蓝屏,都快写完,重新干吧,)
如果有其他字符被 " 或 ' 包括,可以使用notepad++来替换为空白。
/*
* 提取密码的方法
*/
char[][] temppassword = new char[1024*10][1024];
int times = 0;
int j = 0;
for(int i = 0;i < tempchars.length;i++) {
ch = String.valueOf(tempchars[i]);
if((panduan == -1) || (ch != "'")) {
if(j<1024) {
temppassword[times/2][j] = tempchars[i];
j++;
}
int oushu = evenOrOdd(times);
if(oushu == 0) {
j = 0;
}
}
if (ch.equals("'")) {
panduan = ~panduan;
times++;
}
}
/*
* 提取link的方法
*/
char[][] templink = new char[1024*10][1024];
times = 0;
j = 0;
for(int i = 0;i < tempchars.length;i++) {
ch = String.valueOf(tempchars[i]);
if((panduan == -1) || (ch != "\"")) {
if(j<1024) {
templink[times/2][j] = tempchars[i];
j++;
}
int oushu = evenOrOdd(times);
if(oushu == 0) {
j = 0;
}
}
if (ch.equals("\"")) {
panduan = ~panduan;
times++;
}
}
/*
* 合并链接密码
*/
String[] link = tran(templink, 47);
String[] passward = tran(temppassword, 4);
String LZF = "----";
for(int i =0;i<612;i++) {
tempresult[i] = (String) (link[i] +LZF+ passward[i]) ;
}
public static int evenOrOdd(int x){
int i = 0;
if(x%2==0) {
//是偶数
i = 0;
}else {
//是奇数
i = 1;
}
return i;
}
@SuppressWarnings("null")
public static String[] tran(char ch[][],int j1) {
String cha[] = new String[1024*100];
for(int i = 0;i < 612;i++) {
for(int j = 0;j < j1;j++) {
if(cha == null) {
cha[i] = "";
cha[i] = String.valueOf(ch[i][j]);
}else if(cha != null){
cha[i] = (String) (cha[i] + ch[i][j]);
}
}
}
return cha;
}
3.开始程序,进行转换
4.转换完成,将end.txt在notepad++ 里列删除null
顺便将多余行删除
选择多余行起点:
选择终点:
删除,程序里数组给的太大,因为每次操作的文件链接个数不一样
处理完成!!!!
300个数据,分分钟的事,现在一分钟存一次,可恶的etd.sys蓝屏错误,顺带提一下,安装了最新版的触摸板驱动,而不是稳定版,就这个事。退回去就行了。
居然还不蓝屏,嘿嘿嘿!
3.开始转存
1.打开百度云转存工具,要有yunpan文件夹。使用最新版转存,否则会失败的。我这里有2019.1.22
2.开始导入,开始转存
就是这个样子了
一定要有yunpan文件夹,没有的话点击右上角,创建目录。
点击开始:
这样就全部存在百度云盘里了。打开看看: