WEB开发网
开发学院软件开发Java dySE:一个 Java 搜索引擎的实现,第 1 部分: 网络... 阅读

dySE:一个 Java 搜索引擎的实现,第 1 部分: 网络爬虫

 2010-07-30 00:00:00 来源:WEB开发网   
核心提示: 清单 1. 网页数据抓取URLurl=newURL(“http://www.xxx.com”);URLConnectionconn=url.openConnection();BufferedReaderreader=newBufferedReader(newInputSt

清单 1. 网页数据抓取

URL url = new URL(“http://www.xxx.com”); 
URLConnection conn = url.openConnection(); 
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
String line = null; 
while((line = reader.readLine()) != null) 
  document.append(line + "\n"); 

使用 Java 语言的好处是不需要自己处理底层的连接操作,喜欢或者精通 Java 网络编程的读者也可以不用上述的方法,自己实现 URL 类及相关操作,这也是一种很好的锻炼。

网页处理

收集到的单个网页,需要进行两种不同的处理,一种是放入网页库,作为后续处理的原始数据;另一种是被分析之后,抽取其中的 URL 连接,放入 URL 池等待对应网页的收集。

网页的保存需要按照一定的格式,以便以后数据的批量处理。这里介绍一种存储数据格式,该格式从北大天网的存储格式简化而来:

网页库由若干记录组成,每个记录包含一条网页数据信息,记录的存放为顺序添加;

一条记录由数据头、数据、空行组成,顺序为:头部 + 空行 + 数据 + 空行;

头部由若干属性组成,有:版本号,日期,IP 地址,数据长度,按照属性名和属性值的方式排列,中间加冒号,每个属性占用一行;

数据即为网页数据。

需要说明的是,添加数据收集日期的原因,由于许多网站的内容都是动态变化的,比如一些大型门户网站的首页内容,这就意味着如果不是当天爬取的网页数据,很可能发生数据过期的问题,所以需要添加日期信息加以识别。

URL 的提取分为两步,第一步是 URL 识别,第二步再进行 URL 的整理,分两步走主要是因为有些网站的链接是采用相对路径,如果不整理会产生错误。URL 的识别主要是通过正则表达式来匹配,过程首先设定一个字符串作为匹配的字符串模式,然后在 Pattern 中编译后即可使用 Matcher 类来进行相应字符串的匹配。实现代码如下:

上一页  1 2 3 4 5 6  下一页

Tags:dySE 一个 Java

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接