需求:最近在看网易的公开课 , 写个工具 , 用迅雷批量下载后批量重命名
步骤:1 取到公开课视频的地址列表 2 按规则重命名
package net;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class OpenVideoBatch {
public static void main(String[] args) throws Throwable {
URL url = new URL("http://download.v.163.com/dl/open/00DL0QDR0QDS0QHR.html");
InputStream in = url.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in,"gb2312"));
String str = getStringFromReader(br);
String urlReg = "(?<=a title='点击下载' href=')(.*?)(?=' οnclick='.*?'>"+"\""+"\\+\"标准)";
String nameReg = "(?<=obj = \"<h3><span class='k1'>\"\\+\").*?(?=\")";
Pattern urlPattern = Pattern.compile(urlReg);
Pattern namePattern = Pattern.compile(nameReg);
Matcher urlMatcher = urlPattern.matcher(str);
Matcher nameMatcher = namePattern.matcher(str);
List<String> urlList = new ArrayList<String>();
List<String> nameList = new ArrayList<String>();
while(urlMatcher.find()&&nameMatcher.find()){
urlList.add(urlMatcher.group());
nameList.add(nameMatcher.group());
}
for (int j = 0; j < urlList.size(); j++) {
String fileName = nameList.get(j),urlName=urlList.get(j);
// System.out.println(nameList.get(j)+" : "+urlList.get(j));
System.out.println(urlName); // 生成下载地址列表
videoRename(urlName,fileName);//将文件移动到新目录
}
}
static String getStringFromReader(BufferedReader reader) throws IOException{
StringBuilder sb = new StringBuilder();
String str = reader.readLine();
while(str!=null){
sb.append(str).append("\n");
str = reader.readLine();
}
return sb.toString();
}
static void videoRename(String name , String newName) throws IOException{
name=name.substring(name.lastIndexOf("/")+1);
String path = "F:\\360Downloads\\New folder\\";
String newPath = path+"openVideo\\哈佛大学_幸福课\\";
File file = new File(path+name);
File file1 = new File(newPath);
if(!file1.exists()){
file1.mkdirs();
}
System.out.println(file.exists());
if(file.exists()){
boolean b = file.renameTo(new File(newPath+newName.replaceAll("\\?", "")+".mp4"));
System.out.println(b);
}
}
}