• 大小: 749KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-17
  • 语言: Java
  • 标签: java  

资源简介

最近,由于一些需要,用到了java和正则,做了个的足球网站的数据采集程序,由于是第一次做关于java的html页面数据采集,必然在网上查找了很多资料,但是发现运用如此广泛的java在使用正则做html采集方面的(中文)文章是少之又少,都是简单的谈了下java正则的概念,没有真正用在实际网页html采集,所以实例教程更是寥寥无几(虽然java有它自己的Html Parser,而且十分强大),但个人觉得作为如此深入人心的正则表达式,理应有其相关的java实例教程,而且应该很多很全.于是在完成java版的html数据采集程序之后,本人便打算写个关于正则表达式在java上的html页面采集,以便有相关兴趣的读者更好的学习.

资源截图

代码片段和文件信息

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
/**
 * DataStorage类 用于数据的收集和存储
 * @author SoFlash - 博客园  http://www.cnblogs.com/longwu
 */
public class DataStorage {

public void dataStore() {
// 首先用一个字符串 来装载网页链接
String strUrl = “http://www.footballresults.org/league.php?all=1&league=EngPrem“;

String sqlLeagues = ““;
try {
// 创建一个url对象来指向 该网站链接 括号里()装载的是该网站链接的路径
// 更多可以看看 http://wenku.baidu.com/view/8186caf4f61fb7360b4c6547.html
URL url = new URL(strUrl);
// InputStreamReader 是一个输入流读取器 用于将读取的字节转换成字符
// 更多可以看看 http://blog.sina.com.cn/s/blog_44a05959010004il.html
InputStreamReader isr = new InputStreamReader(url.openStream()
“utf-8“); // 统一使用utf-8 编码模式
// 使用 BufferedReader 来读取 InputStreamReader 转换成的字符
BufferedReader br = new BufferedReader(isr);
String strRead = ““; // new 一个字符串来装载 BufferedReader 读取到的内容

// 定义3个正则 用于获取我们需要的数据
String regularDate = “(\\d{12}\\.\\d{12}\\.\\d{4})“;
String regularTwoTeam = “>[^<>]*“;
String regularResult = “>(\\d{12}-\\d{12})“;

//创建 GroupMethod类的对象 gMethod 方便后期调用其类里的 regularGroup方法
GroupMethod gMethod = new GroupMethod();
            //创建DataStructure数据结构 类的对象   用于数据下面的数据存储
DataStructure ds = new DataStructure();
//创建MySql类的对象 用于执行MySql语句
MySql ms = new MySql();
int i = 0; // 定义一个i来记录循环次数 即收集到的球队比赛结果数
int index = 0; // 定义一个索引 用于获取分离 2个球队的数据 因为2个球队正则是相同的
// 开始读取数据 如果读到的数据不为空 则往里面读
while ((strRead = br.readLine()) != null) {
/**
 * 用于捕获日期数据
 */
String strGet = gMethod.regularGroup(regularDate strRead);
// 如果捕获到了符合条件的 日期数据 则打印出来

if (!strGet.equals(““)) {
//System.out.println(“Date:“ + strGet);
//将收集到的日期存在数据结构里
ds.date = strGet;
// 这里索引+1 是用于获取后期的球队数据
++index; // 因为在html页面里 源代码里 球队数据是在刚好在日期之后
}
/**
 * 用于获取2个球队的数据
 */
strGet = gMethod.regularGroup(regularTwoTeam strRead);
if (!strGet.equals(““) && index == 1) { // 索引为1的是主队数据
// 通过subtring方法 分离出 主队数据
strGet = strGet.substring(1 strGet.indexOf(““));
//System.out.println(“HomeTeam:“ + strGet); // 打印出主队
//将收集到的主队名称 存到 数据结构里
ds.homeTeam = strGet;
index++; // 索引+1之后 为2了
// 通过subtring方法 分离出 客队
} else if (!strGet.equals(““) && index == 2) { // 这里索引为2的是客队数据
strGet = strGet.substring(1 strGet.indexOf(““));
//System.out.println(“AwayTeam:“ + strGet); // 打印出客队
//将收集到的客队名称 存到数据结构里
ds.awayTeam = strGet;
index = 0;  //收集完客队名称后 需要将索引还原 用于收集下一条数据的主队名称
}
/**
 * 用于获取比赛结果
 */
strGet = gMethod.regularGroup(regularResult strRead);
if (!strGet.equals(““)) {
// 这里同样用到了substring方法 来剔除‘<‘ 和 ““ 标签 来获取我们想要的比赛结果
strGet = strGet.substring(1 strGet.indexOf(““));
//System.out.println(“Result:“ + strGet);
ds.result = strGet; //将收集到的比赛结果存到数据结构里
//System.o

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-01-23 06:04  htmlDataStorage\
     文件         375  2012-01-03 01:29  htmlDataStorage\.classpath
     文件         403  2011-12-22 23:32  htmlDataStorage\.project
     目录           0  2012-01-23 06:04  htmlDataStorage\.settings\
     文件         629  2011-12-22 23:32  htmlDataStorage\.settings\org.eclipse.jdt.core.prefs
     目录           0  2012-01-23 06:04  htmlDataStorage\bin\
     文件        2896  2012-01-23 06:02  htmlDataStorage\bin\DataStorage.class
     文件         355  2012-01-23 06:02  htmlDataStorage\bin\DataStructure.class
     文件         873  2012-01-23 06:02  htmlDataStorage\bin\GroupMethod.class
     文件         450  2012-01-23 06:03  htmlDataStorage\bin\Main.class
     文件        1739  2012-01-23 06:02  htmlDataStorage\bin\MySql.class
     文件      789885  2011-11-10 18:31  htmlDataStorage\mysql-connector-java-5.1.18-bin.jar
     目录           0  2012-01-23 06:04  htmlDataStorage\src\
     文件        4267  2012-01-23 06:02  htmlDataStorage\src\DataStorage.java
     文件         259  2012-01-23 06:02  htmlDataStorage\src\DataStructure.java
     文件         586  2012-01-23 06:02  htmlDataStorage\src\GroupMethod.java
     文件         281  2012-01-23 06:03  htmlDataStorage\src\Main.java
     文件        1360  2012-01-23 06:02  htmlDataStorage\src\MySql.java

评论

共有 条评论