Fork me on GitHub
简单的网络爬虫实现

最近在学习搜索方面的东西,需要了解网络爬虫方面的知识,虽然有很多开源的强大的爬虫,但本着学习的态度,自己写了一个简单的网络爬虫,以便了解其中原理。

首先介绍每个类的功能:

DownloadPage.java的功能是下载此超链接的页面源代码.

FunctionUtils.java 的功能是提供不同的静态方法,包括:页面链接正则表达式匹配,获取URL链接的元素,判断是否创建文件,获取页面的Url并将其转换为规范的Url,截取网页网页源文件的目标内容。

HrefOfPage.java 的功能是获取页面源代码的超链接。

UrlDataHanding.java 的功能是整合各个给类,实现url到获取数据到数据处理类。

UrlQueue.java 的未访问Url队列。

VisitedUrlQueue.java 已访问过的URL队列。

 

下面介绍一下每个类的源代码:

DownloadPage.java 此类要用到HttpClient组件。

View Code

FunctionUtils.java 此类的方法均为static方法

View Code

HrefOfPage.java 此类为获取页面的超链接

View Code

UrlDataHanding.java 此类主要是从未访问队列中获取url,下载页面,分析url,保存已访问url等操作,实现Runnable接口

View Code

UrlQueue.java 此类主要是用来存放未访问的URL队列

View Code

VisitedUrlQueue.java 主要是保存已访问过的URL,使用HashSet来保存,主要是考虑到每个访问过的URL是不同。HashSet刚好符合这个要求

View Code

Test.java 此类为测试类

View Code

说明一下:由于我抓取的是针对oschina的,所以里面的url正则表达式不适合其他网站,需要自己修改一下。你也可以写成xml来配置。

小弟技术有限,有些地方确实写得不好,希望各位大牛不吝指教

联系方式:QQ:982925115  Email:zhong678@yeah.net

 
 
posted on 2012-05-09 10:39  HackerVirus  阅读(315)  评论(0编辑  收藏  举报