网站内容采集器(作为全球运用最广泛的语言,Java,正则表达式)
优采云 发布时间: 2022-01-27 23:10网站内容采集器(作为全球运用最广泛的语言,Java,正则表达式)
介绍:
作为世界上使用最广泛的语言,Java以其高效、可移植(跨平台)、代码健壮性和强大的可扩展性而受到广大应用程序开发者的青睐。开发语言,正则表达式在其中的应用当然是必不可少的,掌握正则表达式的能力也是那些资深程序员开发技能的体现,做一个合格的网站开发程序员(尤其是前端-end development),正则表达式是必须的。
最近由于一些需要,使用java和regular,做了一个足球网站数据采集程序,因为是第一次做关于java的html页面数据采集,一定要be我在网上找了很多资料,但是发现在使用正则化做html中广泛使用的java采集(中文)文章很少,他们只是在说java正则这个概念在实际网页中并没有真正用到html采集,所以例子教程很少(虽然java有自己的Html Parser,而且很强大),但是我个人认为作为一个深入rooted 正则表达式,应该有相关的java示例教程,而且应该很多且完整。所以在完成了html数据采集程序的java版之后,
关于组规律性:
说到正则表达式如何帮助java执行html页面采集,这里简单提一下正则表达式中的group方法
组法
让我们看看输出:
打印出 url 链接:打印出标题:SoFlash 打印出日期:12.22.2011
group 方法捕获的数据数量:3
没学过正则的可以看看这个正则表达式的元字符匹配
好了,group的方法已经介绍完了,我们简单用group采集a football网站页面的数据
首先我们阅读整个html页面,打印出代码如下
抓取整个html页面数据
打印出来的结果就是整个html页面的源码(部分截图如下)
至此,数据已经成功采集下来了,当然我们要的不是整个html源码,我们需要的是网页上的游戏数据。
首先我们分析html源码结构,来到2011-2012赛季英超球队战绩页面
右击页面,点击“查看源文件”如图
我们来看看它内部的html代码结构和我们需要的数据
其对应的页面数据
这时候强大的正则表达式就派上用场了,我们需要写几个正则表达式来匹配我们需要的数据
在这里你需要使用 3 个常客,包括日期、2 支球队(主队和客队)和比赛结果如下
String regularDate = "(\\d{1,2}\\.\\d{1,2}\\.\\d{4})";//日期正则 String regularTwoTeam = ">[^]*" ; //队伍是正则 String regularResult = ">(\\d{1,2}-\\d{1,2})"; //游戏结果有规律
写好正则后,我们就可以使用正则得到我们想要的数据了
首先我们写一个GroupMethod类来存储regularGroup()方法
GroupMethod 类
然后编写主要功能代码
主要功能 - 采集我们需要的数据
让我们看看输出(部分截图 - 初始阶段)
比较html上的数据(部分截图-初始阶段)
输出结果(部分截图 - 结束阶段)
比较html上的数据(部分截图-结束阶段)
嗯,这样的html数据采集就完成了:)
当然,这只是一页的内容。如果您有兴趣抓取更多页面内容,可以在链接后分析联盟名称。例如,league=EngPrem 可以通过更改联赛名称来获取所有链接。
你可以写一个接口,把所有球队的名字放到联赛的比赛数据中。当然,还有更智能的方法。您可以从页面编写方法。
获取所有球队的名称,然后将它们附加到“;league”链接以完成链接以阅读每个联赛比赛页面的内容