📄 albuminfoparser.java
字号:
if(fullcontentNL!=null && fullcontentNL.size()>0){
Node albumUrlNode= fullcontentNL.elementAt(0);
String str = albumUrlNode.toPlainTextString();
if(str != null)
albuminfo.setAlbumIntro(str.substring(str.indexOf(":")+1));
//System.out.println("专辑介绍:"+ str.substring(str.indexOf(":")+1));
}
Node liNode8 = liNL.elementAt(7); //专辑地址
pageParser=Parser.createParser(liNode8.toHtml(), Constant.CHARSET_GB2312);
NodeList albumUrlNL=pageParser.parse(FILTER_DIV_ALBUMURL);
if(albumUrlNL!=null && albumUrlNL.size()>0){
for(int i=0;i<albumUrlNL.size();i++){
Node albumUrlNode= albumUrlNL.elementAt(i);
if(albumUrlNode != null){
InputTag input = (InputTag) albumUrlNode.getChildren().elementAt(1);
albuminfo.setAlbumAddr(input.getAttribute("value"));
System.out.println("专辑地址:"+ input.getAttribute("value"));
}
albumImgParse(page, albuminfo); //专辑的图片
System.out.println("*********************************");
}
}
}
userCreateParse(page,albuminfo);
List<?> videoList = getAlbumVideoParse(url); // 判断json 异常 有异常 返回空
if(videoList!=null){
albuminfo = AlbumInfoService.save(albuminfo,videoList,keywordList); //调用service 写入数据库
//AlbumInfoService.save(albuminfo,keywordList);
}
} catch (ParserException e) {
e.printStackTrace();
}
}
return albuminfo;
}
/**
*
* @param url 单个专辑信息的图片
*/
private static void albumImgParse(String page, AlbumInfo albuminfo){
if(page != null){
Parser pageParser=Parser.createParser(page, Constant.CHARSET_GB2312);
try {
NodeList nl=pageParser.parse(FILTER_DIV_SL);
pageParser=Parser.createParser(nl.toHtml(), Constant.CHARSET_GB2312);
NodeList imgNL=pageParser.parse(FILTER_IMG);
if(imgNL!=null && imgNL.size()>0){
Node imgNode= imgNL.elementAt(0);
if(imgNode instanceof ImageTag){
ImageTag img=(ImageTag) imgNode;
System.out.println("专辑图片地址:"+img.getImageURL());
albuminfo.setImageUrl(img.getImageURL()); // 保存 图片地址
}
}
} catch (ParserException e) {
e.printStackTrace();
}
}
}
/**
*
* @param url 专辑的相关视频
* @return http://www.56.com/w98/album-aid-6563926.html
* http://www.56.com/w33/album_v2/album_videolist.phtml?callback=albumV2.callback&aid=6617346&o=0
*/
private static List<VideoInformation> getAlbumVideoParse(String url){
String str=url.substring(18, 21);
String str2 = url.substring(url.lastIndexOf("-")+1, url.indexOf(".html"));
String url2 = "http://www.56.com/"+str+"/album_v2/album_videolist.phtml?callback=albumV2.callback&aid="+str2+"&o=0";
String html =HttpUtil.request(url2, Constant.CHARSET_GB2312);
List<VideoInformation> list= null;
if(html!=null){
html =html.substring(11);
try {
JSONObject jsonObj=JSONObject.fromObject(html);
JSONArray arr=JSONArray.fromObject(jsonObj.getString("data"));
list=new ArrayList<VideoInformation> ();
for(int i=0;i<arr.size();i++){
String videoUrl="http://www.56.com/w31/play_album-aid-"+arr.getJSONObject(i).getString("album_id")
+"_vid-"+arr.getJSONObject(i).getString("video_id")+".html"; //专辑相关视频的连接地址
String imageStr = arr.getJSONObject(i).getString("video_cover"); // 图片
String videoAuthor = arr.getJSONObject(i).getString("video_author"); //会员
String addTime = arr.getJSONObject(i).getString("add_time"); //上传时间
String videoTitle =arr.getJSONObject(i).getString("video_title"); //标题
VideoInformation video =new VideoInformation();
video.setFlashAddress(videoUrl);
video.setSoureUrl(imageStr);
video.setHeadTitle(videoAuthor);
if (addTime != null )
video.setUploadTime(new MySuperDate(Long.parseLong(addTime)).getDate());
else
video.setUploadTime(new Date());
video.setVideoTitle(videoTitle);
//http://zhiliangrs.v.56.com
UserInfo user = UserInfoParser.parse("http://"+videoAuthor+".v.56.com/"); //写入用户id
if(user!=null) video.setUserId(user.getUserId());
else video.setUserId(0);
/* try {
video.setNewUrl(FileUtil.download(imageStr)); // 专辑相关视频的图片下载
} catch (DownloadException e) {
video.setNewUrl("");
e.printStackTrace();
}*/
list.add(video);
System.out.println("**"+(COUNT++)+"**"+"视频连接地址:"+videoUrl);
System.out.println("视频标题:"+videoTitle);
//System.out.println("上传者:"+videoAuthor);
//System.out.println("上传时间:"+addTime);
//System.out.println("视频图片地址:"+imageStr);
System.out.println("****************************************");
}
} catch (JSONException e) {
e.printStackTrace();
return null;
}
}
return list;
}
/**
*
* @param url 抓取 用户连接地址
*/
private static void userCreateParse(String page,AlbumInfo albuminfo){
if(page != null){
Parser pageParser=Parser.createParser(page, Constant.CHARSET_GB2312);
try {
NodeList nl=pageParser.parse(FILTER_DT);
if(nl !=null && nl.size()>0){
Node node=nl.elementAt(0);
pageParser=Parser.createParser(node.toHtml(), Constant.CHARSET_GB2312);
NodeList aNL=pageParser.parse(FILTER_A);
if(aNL !=null && aNL.size()>0){
LinkTag link=(LinkTag) aNL.elementAt(0);
System.out.println("*********************************");
System.out.println("用户连接地址:"+link.getLink());
UserInfo userInfo=UserInfoParser.parse(link.getLink());
if(userInfo != null) albuminfo.setUserId(userInfo.getUserId());
else albuminfo.setUserId(0);
}
}
} catch (ParserException e){
e.printStackTrace();
}
}
}
public static void main(String[] args) {
parse("http://www.56.com/w97/album-aid-180489.html");
// 问题地址 http://www.56.com/w77/album-aid-3583117.html 空页面
//parse("http://www.56.com/w77/album-aid-3583117.html");
// http://www.56.com/w37/album-aid-4201983.html 乱码
//parse("http://www.56.com/w37/album-aid-4201983.html");
//getAlbumVideoParse("http://www.56.com/w57/play_album-aid-1228780_vid-MTgyNjEyODE.html");
// getAlbumVideoParse("http://www.56.com/w57/album-aid-1228780.html");
// getVideo("http://www.56.com/w98/play_album-aid-6563926_vid-Mzc3NDYzMDQ.html");
//getAlbumVideoParse("http://www.56.com/w33/album_v2/album_videolist.phtml?callback=albumV2.callback&aid=6617346&o=0");
/* String str="http://www.56.com/w98/album-aid-6563926.html";
String[] arr = str.split("/");
//for(int i=0;i<arr.length;i++)
//System.out.println(arr[3]);
// System.out.println(arr[4]);
String str2=str.substring(32, str.length()-5);
System.out.println(str2);*/
// userCreate("http://www.56.com/w98/album-aid-6563926.html");
//findAllVideoAddr();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -