现在的位置: 首页 > 综合 > 正文

流媒体开发之-音悦台TV页码链接解析

2013年12月14日 ⁄ 综合 ⁄ 共 1933字 ⁄ 字号 评论关闭

在前面的流媒体开发之-音悦台TV解析中解析了某一个页的TV视频,但是里面有很多页,如果要解析所有的视频,首先要解析每一页视频的链接,下面解析音悦台的视频页的链接

首先要明白的是网页里面给出的链接可能没有音悦台的域名,还有就是链接要分为几部分来组合,下面是我写的一个类来存储链接的

package com.pigvideo.model;

import java.io.Serializable;

/**
 * 用来存储音悦台链接的内容
 * Created by jwzhangjie on 13-12-7.
 */
public class YinYueTaiPageModel implements Serializable{

	private static final long serialVersionUID = 1L;
	/**
	 * 音悦台的域名
	 */
	private String pageStart;
	/**
	 * 选择页的链接头部
	 */
	private String pageHead;
	/**
	 * 选择页的链接尾部
	 */
	private String pageEnd;
	/**
	 * 选择页的数目
	 */
	private int pageNum;
	
	public String getPageStart() {
		return pageStart;
	}
	public void setPageStart(String pageStart) {
		this.pageStart = pageStart;
	}
	public String getPageHead() {
		return pageHead;
	}
	public void setPageHead(String pageHead) {
		this.pageHead = pageHead;
	}
	public String getPageEnd() {
		return pageEnd;
	}
	public void setPageEnd(String pageEnd) {
		this.pageEnd = pageEnd;
	}
	public int getPageNum() {
		return pageNum;
	}
	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
	}
}

接下来就是去解析网页中存储页码的html部分

 /**
     * 获取当前选择的TV类型的页数
     */
    public YinYueTaiPageModel getYinYueTaiPage(String url){
    	YinYueTaiPageModel yinYueTaiPageModel = new YinYueTaiPageModel();
    	try {
    		Document doc = Jsoup.connect(url).get();
    		Element page_nav = doc.getElementById("pageNav");
    		Element onePage = page_nav.getElementsByTag("a").first();
    		String href = onePage.attr("href");
    		if ("http://mv.yinyuetai.com/".indexOf(href) == -1) {
    			yinYueTaiPageModel.setPageStart("http://mv.yinyuetai.com/");
			}else {
				yinYueTaiPageModel.setPageStart("");
			}
    		String[] temp = href.split(onePage.text());
    		yinYueTaiPageModel.setPageHead(temp[0]);
    		yinYueTaiPageModel.setPageEnd(temp[1]);
    		Elements Pages = page_nav.select("span.separator");
    		for (Element element : Pages) {
				if (element.text().indexOf("页") != -1) {
					StringBuilder pages = new StringBuilder();
					pages.append(element.text());
					String numString = pages.substring(1, pages.length()-1);
					try {
						yinYueTaiPageModel.setPageNum(Integer.parseInt(numString));
					} catch (Exception e) {
						yinYueTaiPageModel.setPageNum(0);
						e.printStackTrace();
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
    	return yinYueTaiPageModel;
    }

下面一章会整合这两部分来实现解析所有选择条件的TV视频

抱歉!评论已关闭.