流媒体开发之-新浪网NBA赛程解析

在前面解析新浪网NBA排名,这章解析NBA赛事。

首先还是封装一个存储赛事内容的类:

package com.jwzhangjie.model;

import java.io.Serializable;

/**
 * 赛程
 * @author jwzhangjie
 *
 */
public class CompetitionNoticeModel implements Serializable{

	private static final long serialVersionUID = 1L;

	/**
	 * 比赛时间
	 */
	private String date;
	/**
	 * 比赛类型
	 */
	private String type;
	/**
	 * 客队
	 */
	private String awayTeam;
	/**
	 * 比分
	 */
	private String score;
	/**
	 * 主队
	 */
	private String homeTeam;
	/**
	 * 客队最高分
	 */
	private String awayMaxScore;
	/**
	 * 主队最高分
	 */
	private String homeMaxScore;
	/**
	 * 战报
	 */
	private String battlefield;
	/**
	 * 统计
	 */
	private String statistics;
	/**
	 * 视频
	 */
	private String video;
	/**
	 * 组图
	 */
	private String photos;
	/**
	 * 网络直播/电视直播
	 */
	private String playType;
	
	
	public String getDate() {
		return date;
	}


	public void setDate(String date) {
		this.date = date;
	}


	public String getType() {
		return type;
	}


	public void setType(String type) {
		this.type = type;
	}


	public String getAwayTeam() {
		return awayTeam;
	}


	public void setAwayTeam(String awayTeam) {
		this.awayTeam = awayTeam;
	}


	public String getScore() {
		return score;
	}


	public void setScore(String score) {
		this.score = score;
	}


	public String getHomeTeam() {
		return homeTeam;
	}


	public void setHomeTeam(String homeTeam) {
		this.homeTeam = homeTeam;
	}


	public String getAwayMaxScore() {
		return awayMaxScore;
	}


	public void setAwayMaxScore(String awayMaxScore) {
		this.awayMaxScore = awayMaxScore;
	}


	public String getHomeMaxScore() {
		return homeMaxScore;
	}


	public void setHomeMaxScore(String homeMaxScore) {
		this.homeMaxScore = homeMaxScore;
	}


	public String getBattlefield() {
		return battlefield;
	}


	public void setBattlefield(String battlefield) {
		this.battlefield = battlefield;
	}


	public String getStatistics() {
		return statistics;
	}


	public void setStatistics(String statistics) {
		this.statistics = statistics;
	}


	public String getVideo() {
		return video;
	}


	public void setVideo(String video) {
		this.video = video;
	}


	public String getPhotos() {
		return photos;
	}


	public void setPhotos(String photos) {
		this.photos = photos;
	}


	public String getPlayType() {
		return playType;
	}


	public void setPlayType(String playType) {
		this.playType = playType;
	}


	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append(date).append(type).append(awayTeam).append(score);
		builder.append(homeTeam).append(awayMaxScore).append(homeMaxScore);
		builder.append(battlefield).append(statistics).append(video).append(photos);
		return builder.toString();
	}
	
	public void setCase(int i, String content){
		switch (i) {
		case 0:
			date = content;
			break;
		case 1:
			type = content;
			break;
		case 2:
			awayTeam = content;
			break;
		case 3:
			score = content;
			break;
		case 4:
			homeTeam = content;
			break;
		case 5:
			awayMaxScore = content;
			break;
		case 6:
			homeMaxScore = content;
			break;
		case 7:
			battlefield = content;
			break;
		case 8:
			statistics = content;
			break;
		case 9:
			video = content;
			break;
		case 10:
			photos = content;
			break;
		}
	}
	
}

然后就是解析赛事内容:

package com.jwzhangjie.parser.ranking;

import java.util.ArrayList;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import com.jwzhangjie.model.CompetitionNoticeModel;

/**
 * 赛程解析
 * @author jwzhangjie
 */
public class CompetitionNotice {

	public ArrayList<CompetitionNoticeModel> getCompetitionNotice(String url){
		ArrayList<CompetitionNoticeModel> listData = new ArrayList<CompetitionNoticeModel>();
		try {
			Document doc = Jsoup.connect(url).get();
			Element table980middle = doc.getElementById("table980middle");
			Elements tableText = table980middle.getElementsByTag("tbody");
			if (tableText != null && tableText.size() > 0 ) {
				Elements trs = tableText.first().getElementsByTag("tr");
				for (Element tr : trs) {
					CompetitionNoticeModel model = new CompetitionNoticeModel();
					Elements tds = tr.getElementsByTag("td");
					int count = tds.size();
					for (int i = 0; i < count; i++) {
						Element td = tds.get(i);
						model.setCase(i, td.text());
					}
					listData.add(model);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return listData;
	}
}


解析结果如下:我解析的网页是 http://nba.sports.sina.com.cn/match_result.php

12月08日星期日类型客队比分主队客队最高分主队最高分战报统计视频组图
08:00 完场常规赛掘金103-9276人罗宾逊 20罗腾 20战报统计视频组图
08:30 完场常规赛快船82-88骑士克劳福德 19汤普森 20战报统计视频组图
09:00 完场常规赛活塞92-75公牛詹宁斯 33吉布森 21战报统计视频组图
09:00 完场常规赛勇士108-82灰熊汤普森 30米勒 16战报统计视频组图
09:00 完场常规赛热火103-82森林狼詹姆斯 21马丁 19战报统计视频组图
09:30 完场常规赛篮网90-82雄鹿洛佩斯 32梅奥 22战报统计视频组图
09:30 完场常规赛步行者111-100马刺乔治 28莱昂纳德 18战报统计视频组图
10:00 完场常规赛国王112-102爵士考辛斯 28海沃德 22战报统计视频组图
11:00 完场常规赛小牛108-106开拓者诺维茨基 28利拉德 32战报统计视频组图
12月09日星期一类型客队比分主队客队最高分主队最高分战报统计视频组图
01:00 未赛常规赛凯尔特人0-0尼克斯直播统计?组图
07:00 未赛常规赛热火0-0活塞直播统计?组图
08:00 未赛常规赛魔术0-0火箭直播统计?组图
08:00 未赛常规赛步行者0-0雷霆直播统计?组图
10:30 未赛常规赛猛龙0-0湖人直播统计?组图
12月10日星期二类型客队比分主队客队最高分主队最高分战报统计视频组图
08:00 未赛常规赛勇士0-0山猫直播统计?组图
08:00 未赛常规赛快船0-076人直播统计?组图
08:00 未赛常规赛掘金0-0奇才直播统计?组图
09:00 未赛常规赛魔术0-0灰熊直播统计?组图
10:00 未赛常规赛开拓者0-0爵士直播统计?组图
11:00 未赛常规赛小牛0-0国王直播统计?组图
12月11日星期三类型客队比分主队客队最高分主队最高分战报统计视频组图
08:00 未赛常规赛尼克斯0-0骑士直播统计?组图
08:00 未赛常规赛热火0-0步行者直播统计?组图
08:00 未赛常规赛马刺0-0猛龙直播统计?组图
08:30 未赛常规赛雷霆0-0老鹰直播统计?组图
08:30 未赛常规赛凯尔特人0-0篮网直播统计?组图
08:30 未赛常规赛森林狼0-0活塞直播统计?组图
09:00 未赛常规赛雄鹿0-0公牛直播统计?组图
11:30 未赛常规赛太阳0-0湖人直播统计?组图
12月12日星期四类型客队比分主队客队最高分主队最高分战报统计视频组图
08:00 未赛常规赛魔术0-0山猫直播统计?组图
08:30 未赛常规赛快船0-0凯尔特人直播统计?组图
09:00 未赛常规赛雷霆0-0灰熊直播统计?组图
09:00 未赛常规赛马刺0-0雄鹿直播统计?组图
09:00 未赛常规赛76人0-0森林狼直播统计?组图
09:00 未赛常规赛活塞0-0鹈鹕直播统计?组图
09:00 未赛常规赛公牛0-0尼克斯直播统计?组图
11:00 未赛常规赛爵士0-0国王直播统计?组图
11:30 未赛常规赛小牛0-0勇士直播统计?组图
12月13日星期五类型客队比分主队客队最高分主队最高分战报统计视频组图
09:00 未赛常规赛快船0-0篮网直播统计?组图
11:30 未赛常规赛火箭0-0开拓者直播统计?组图
12月14日星期六类型客队比分主队客队最高分主队最高分战报统计视频组图
08:00 未赛常规赛山猫0-0步行者直播统计?组图
08:00 未赛常规赛骑士0-0魔术直播统计?组图
08:00 未赛常规赛76人0-0猛龙直播统计?组图
08:30 未赛常规赛奇才0-0老鹰直播统计?组图
08:30 未赛常规赛尼克斯0-0凯尔特人直播统计?组图
08:30 未赛常规赛篮网0-0活塞直播统计?组图
09:00 未赛常规赛灰熊0-0鹈鹕直播统计?组图
09:00 未赛常规赛湖人0-0雷霆直播统计?组图
09:30 未赛常规赛公牛0-0雄鹿直播统计?组图
09:30 未赛常规赛森林狼0-0马刺直播统计?组图
10:00 未赛常规赛爵士0-0掘金直播统计?组图
10:00 未赛常规赛国王0-0太阳直播统计?组图
11:30 未赛常规赛火箭0-0勇士直播统计?组图
对比原数据:

12月08日星期日 类型 客队 比分 主队客队最高分主队最高分 战报 统计 视频 组图 网络视频/电视直播
08:00 完场常规赛 掘金103-92 76人 罗宾逊 20 罗腾 20战报统计视频组图 
08:30 完场常规赛 快船82-88 骑士 克劳福德 19 汤普森 20战报统计视频组图 
09:00 完场常规赛 活塞92-75 公牛 詹宁斯 33 吉布森 21战报统计视频组图 
09:00 完场常规赛 勇士108-82 灰熊 汤普森 30 米勒 16战报统计视频组图 
09:00 完场常规赛 热火103-82 森林狼 詹姆斯 21 马丁 19战报统计视频组图新浪体育
09:30 完场常规赛 篮网90-82 雄鹿 洛佩斯 32 梅奥 22战报统计视频组图 
09:30 完场常规赛 步行者111-100 马刺 乔治 28 莱昂纳德 18战报统计视频组图CCTV5
10:00 完场常规赛 国王112-102 爵士 考辛斯 28 海沃德 22战报统计视频组图 
11:00 完场常规赛 小牛108-106 开拓者 诺维茨基 28 利拉德 32战报统计视频组图 
12月09日星期一 类型 客队 比分 主队客队最高分主队最高分 战报 统计 视频 组图 网络视频/电视直播
01:00 未赛常规赛 凯尔特人0-0 尼克斯 直播统计 组图 
07:00 未赛常规赛 热火0-0 活塞 直播统计 组图 
08:00 未赛常规赛 魔术0-0 火箭 直播统计 组图新浪体育
08:00 未赛常规赛 步行者0-0 雷霆 直播统计 组图 
10:30 未赛常规赛 猛龙0-0 湖人 直播统计 组图新浪体育
12月10日星期二 类型 客队 比分 主队客队最高分主队最高分 战报 统计 视频 组图 网络视频/电视直播
08:00 未赛常规赛 勇士0-0 山猫 直播统计 组图 
08:00 未赛常规赛 快船0-0 76人 直播统计 组图新浪体育
08:00 未赛常规赛 掘金0-0 奇才 直播统计 组图 
09:00 未赛常规赛 魔术0-0 灰熊 直播统计 组图 
10:00 未赛常规赛 开拓者0-0 爵士 直播统计 组图 
11:00 未赛常规赛 小牛0-0 国王 直播统计 组图 
12月11日星期三 类型 客队 比分 主队客队最高分主队最高分 战报 统计 视频 组图 网络视频/电视直播
08:00 未赛常规赛 尼克斯0-0 骑士 直播统计 组图 
08:00 未赛常规赛 热火0-0 步行者 直播统计 组图 
08:00 未赛常规赛 马刺0-0 猛龙 直播统计 组图 
08:30 未赛常规赛 雷霆0-0 老鹰 直播统计 组图 
08:30 未赛常规赛 凯尔特人0-0 篮网 直播统计 组图 
08:30 未赛常规赛 森林狼0-0 活塞 直播统计 组图 
09:00 未赛常规赛 雄鹿0-0 公牛 直播统计 组图 
11:30 未赛常规赛 太阳0-0 湖人 直播统计 组图新浪体育
12月12日星期四 类型 客队 比分 主队客队最高分主队最高分 战报 统计 视频 组图 网络视频/电视直播
08:00 未赛常规赛 魔术0-0 山猫 直播统计 组图 
08:30 未赛常规赛 快船0-0 凯尔特人 直播统计 组图 
09:00 未赛常规赛 雷霆0-0 灰熊 直播统计 组图 
09:00 未赛常规赛 马刺0-0 雄鹿 直播统计 组图 
09:00 未赛常规赛 76人0-0 森林狼 直播统计 组图 
09:00 未赛常规赛 活塞0-0 鹈鹕 直播统计 组图 
09:00 未赛常规赛 公牛0-0 尼克斯 直播统计 组图新浪体育
11:00 未赛常规赛 爵士0-0 国王 直播统计 组图 
11:30 未赛常规赛 小牛0-0 勇士 直播统计 组图 
12月13日星期五 类型 客队 比分 主队客队最高分主队最高分 战报 统计 视频 组图 网络视频/电视直播
09:00 未赛常规赛 快船0-0 篮网 直播统计 组图 
11:30 未赛常规赛 火箭0-0 开拓者 直播统计 组图新浪体育
12月14日星期六 类型 客队 比分 主队客队最高分主队最高分 战报 统计 视频 组图 网络视频/电视直播
08:00 未赛常规赛 山猫0-0 步行者 直播统计 组图 
08:00 未赛常规赛 骑士0-0 魔术 直播统计 组图 
08:00 未赛常规赛 76人0-0 猛龙 直播统计 组图 
08:30 未赛常规赛 奇才0-0 老鹰 直播统计 组图 
08:30 未赛常规赛 尼克斯0-0 凯尔特人 直播统计 组图 
08:30 未赛常规赛 篮网0-0 活塞 直播统计 组图新浪体育
09:00 未赛常规赛 灰熊0-0 鹈鹕 直播统计 组图 
09:00 未赛常规赛 湖人0-0 雷霆 直播统计 组图 
09:30 未赛常规赛 公牛0-0 雄鹿 直播统计 组图 
09:30 未赛常规赛 森林狼0-0 马刺 直播统计 组图 
10:00 未赛常规赛 爵士0-0 掘金 直播统计 组图 
10:00 未赛常规赛 国王0-0 太阳 直播统计 组图 
11:30 未赛常规赛 火箭0-0 勇士 直播统计 组图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值