如何在一些没有批量下载按钮的网址(只有单独下载按钮)批量下载文件

周末发现追已久的灵异电台主播早已将音频文件上传到自己的网址里,http://117.131.187.206:90/,月夜书单,充满惊喜去看,结果只能一首一首下载,上百首音频文件,还是带密码的网易云链接。工科的我于是想写一个Java程序来代替我去整理下载链接,和提取码,然后交给百度云转存助手啦。

下载链接:

源码:https://download.csdn.net/download/goolete/10951268

工具:https://download.csdn.net/download/goolete/10951271

 

网上搜了一下,说什么迅雷批量下载,没卵用。

话不多说,开干!

 

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">播放&amp;下载</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文件夹,没有的话点击右上角,创建目录。

点击开始:

 

这样就全部存在百度云盘里了。打开看看:

电脑还没有蓝屏,果然是驱动,联想的触摸板有问题啊,bing里全是他的问题

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值