基于Heritrix的网页内容过滤抓取
- 格式:pdf
- 大小:523.60 KB
- 文档页数:5
0 引言 基于Heritrix的网页内容过滤抓取 陈锦伟 . 徐 勇 (肇庆学院数学与信息计算科学学院,肇庆526061) 摘 要:在深入研究开源网页爬虫——Heritrix系统框架和源代码的基础上.对其搜索内容和范围 增加过滤处理功能。这些功能扩展的实现是通过面向对象分析与设计技术.定义类对 Heritrix中相关的类进行继承。在校园网范围内运行Heritrix进行网页收集实验。实验结果 表明,新增的过滤功能运行有效。 关键词:垂直搜索引擎;网络爬虫;Heritrix;内容过滤
伴随互联网技术的快速发展.搜索引擎应运而生 了。搜索引擎就是一个对Intemet上的各种信息资源进 行搜集整理.然后根据用户的查询请求把搜索的结果以 网页的方式反馈给用户的系统.该系统可以搜索和处 理的信息包括网页、图片、其他格式的文件llJ。搜索引擎 一般有三个主要部件,即:①网页收集(Web Crawling); ②索引创建(Indexing);③搜索[21,像百度和谷歌等都是 搜索引擎的代表 对于一般的信息搜索.百度和谷歌都 可以满足用户的需求 但是面对互联网信息量的日益 增多.查询返回结果变得越来越不够准确.不够精准。 为了应对这方面的挑战.垂直搜索引擎作为一种解决 方案被提出了【 。和通用的搜索引擎例如百度、谷歌相 比,垂直搜索引擎专注于特定的搜索领域和搜索需求。 在文献中.关于垂直搜索引擎的研究和设计方面.有大 量的工作[5-91 而在商业领域.有像句酷网这样的主题搜 索引擎,该搜索引擎专注于中英、中日、英13的双语例 句搜索网站 搜索引擎中核心部件之一是网页收集.它又称网 页爬虫(Web Crawler).它实际上是一程序能自动地浏览 和收集网页 爬虫的设计目标是尽可能及时地.更可能 多地抓取网络中的各种网页数据。一般还具通用性。各 种商业搜索引擎都开发了自己的网页爬虫.但也有一
些开源的网页爬虫 比较有影响的开源网页爬虫例如 Heritrix、Nutch,都是通用的网页爬虫。网页爬虫当然也 是垂直搜索引擎的核心部件之一 为了实现垂直搜索 引擎所设定的主题内容搜索.因此需要对网页爬虫所 收集的网页范围进行定制主题内容的搜索 这样做不 仅可以节省网络带宽.而且还可以剔除不符合内容要 求的网页,加快处理效率。对于通用的网页爬虫,在这 方面的功能扩展是开发垂直搜索引擎的关键步骤
1 Heritrix简介 Heritrix是一款基于Java语言开发的开源的爬虫 框架。被用来获取完整的、精确的、站点内容的深度复 制.包括获取图像以及其他非文本内容.抓取并存储相 关的内容。Heritrix采用的是模块化的设计.并由控制 器类(CrawlController类)来协调控制每个模块 Heritrix 的组织结构如图1所示 CrawlController类是整个爬虫的总控制者.控制整 个抓取工作的起点.决定整个抓取任务的开始和结束。 CrawlController从Frontier获取URL.传递给线程池 (ToePoo1)中的ToeThread处理。 Frontier(边界控制器)主要确定下一个将被处理的 URL.均衡处理各个Web访问.保存着爬虫的状态。
收稿日期:2012—06—15 修稿日期:2012—07—15 作者简介:陈锦伟(1988一),男,广东潮安人,本科,研究方向为搜索引擎、计算机网络
现代计算机2012.07下 { for(int i=0;i<keyFile.1ength;i++) { if(!uri.contains(keyFile[i】)); else return false; l retum true; l public static boolean urlFiher(String keyURL,String口 keyFile,String uri) { if(uri.contains(keyURL)Iluri.contains(”taobao”)) { for(int i=0;i<keyFile.1ength;i++) { if(!uri.contains(keyFile[i】)); else returnfalse; } return true; l retum false; } 1 ) 由于有些网页链接,特别是动态链接,其表达式并 非正则表达式,对于此类连接,无法使用uri.contains(”. asp”)的方法,获得我们所需的所有文本,所以只能选 择淘汰法.虽然存在某些不足,但至少还是利大于弊。 而在内容过滤,我们编写了一个ContentFiher类, 其类继承Filter类,通过对外部传来的关键词组,对网 页内容进行检查,如果包含关键词组的,此网页文本将 被写入本地硬盘。 实现的代码片段: //传参代码片段 ReplayInputStream replayis=recis.getContentReplayInput— Stream(); ContentFiher cf=new ContentFilter(dest+”filter”); String content=replayis.chieveContent(); String[]key={”肇庆”,”化学”,1; content=cf.keywordFiher(key,content); //过滤代码片段 现代计算机2012.07下 for(int i=0;i<key.1ength;i++) { if(!content.contains(key[i])) retum’” : l retum content; //写入代码片段
File tf=new File(dest.getPath()); FileOutputStream fos=new FileOutputStream(if); try{ replayis.ereateFile(fos,content); System.out.println(”File has create:”+tf): }finally{ fos.close(); replayis.close(); )
3 实验
为了检验我们扩展类的有效性.本文选取了肇庆 学院网站(http://www.zqu.edu.cn/)作为内容定向爬取的 信息源。把肇庆学院网站的网址作为种子,运行经过扩 展的Heritrix。观察Heritrix的抓取结果。过程中。指定 搜索的URL的范围条件:URL中包含有zqu,即肇庆 学院的相关网页:网页文件格式约定必须包含“. HTML”、“.ASP”、“.PHP”、“.ASPX”等有用的网页信息文 本:网页内容指定下载到本地的网页文本须含有一个 或多个特定的关键词。例如文本须含有“肇庆”、“化学” 两个关键词 图4是Heritrix在MyEclipse中启动.各组件初设 化的部分截图,印证各组件启动顺序: 图5是Heritrix在按域名抓取的过滤.创建的类 域名文件夹的部分截图.按照实验配置,每个文件夹都 包含有“zqu”: 图6是Heritrix在抓取特定文本格式的部分截图. 其中包括:“.html”、“.shtml”、“.asp”、“.php”、“.aspx”; 图7是Heritrix内容过滤后写到本地的文本内容 的部分截图,按照之前设置,包含“肇庆”、“化学”两个 关键词的文本 Heritrix通过内容过滤.获得所需数据.并在某种 程度上.对互联网的死链进行了一次过滤.为建设垂直 搜索引擎提供了所需要的较为准确的数据源 i砖: t《: ed i : 3or l朽:
童《: 7 0尊 c e.0嚣赢 鼍 .堂 am w0 k.p王 c 尊0嚣e 置瓤《 n熹t》 3岱 : 靖《S > .挫 c缸i 0 挂罅盖啦嚣. ℃ l抽e .F ㈣nNS l茜:27 o a.拽r0htve。c£ w置嚣1c" £#擐嚣 ew0 靶 p譬o e 甚0£e熟戢主黔《 靠 #》 0 :ll T > g.鼎* b v 0£鼎wl 嚣 舞 E c .F c熟 Tp 盖 :27 0 矬 #hxve. &wie .芏 氆T 世w0 k.pr0 卺尊咎0 e 拯置赫《t靠 0> 等0 :窑 c#毂 C0嚣量点T薯p…》0r毋 悬z0 i审e.e w .e 拽0c0 。霹 嚣 Gc 麓 : ’3 c3 g 拽 t i . .£ 牲l 《 ,蛰 《 0 k lx c xk|t, 》
尊0嚣: 嚣茸乞 拽G#0 韩 }啦一一》0 .a c ive。c£ 羔e雾 e c嚣 ca , ℃ 巍0t0 辩 L :27 0 辑 hj 抱 挑w 拽 ew p 0c 8 0 Ch撒盅 《 #>
cs qu.edu.cn 鬣dept.zqu.edu.cn eng ̄zqu e—g ̄:rt 氢fzghc ̄qu。edu.cn 鬣hqglc ̄qu uzn c硼u.edu.cn 氟赫ms ̄zqu.eduLcn l lib.zqu,edu cn mmihzqu.edu.cn 漱news.zqu.edu.ce 豢ns177—27.zqu edu.cn 鬣《c。 qu.edu.c|l 鬣vpn ̄qu.edu.cn 薹channefid=lS.asp 萋contentrnessid=139tphp 熊cordentmessld=148.php 复contentmessld=153。php 童 ̄ndex.asp rmwsdassdass=1.aspx 邕showdiar ̄d=148.asp 叠shownewsld=170.aspx 邕shownewsid=37Easp showpicM=lS,asp 毫showpidd=25.asp 图4 Heritrix的MyEclipse启动 i bkp. ̄棚u.edu :n CWC.ZqM.eclu cn sLzqu.edu.cn etcc,.zqu edu,cn |鬣gbxx.zqu.edu.cn jgdw.zqu.edu.cn jwc ̄zqu,eclu,on 豁jyx ̄zqu.edu‘n lb【 zqu一亭du n l maths ̄zqu Ⅱ r| ‰ n ce.zqu edu n pe ̄qu.edU*Cn t SV ̄x.zqu.edI_i n 鬣wldz ̄qu.eduocn 图5 URI过滤图 channelM=18。asp contentrnesr,ld=140.php 熊contentmessld=149.php 点contentmessld=1S4.php 巷Iinde ̄html 麓picasp 兰showd;ary ̄d=14g.asp shownewslcl=17Laspx shownews ̄:l=379,asp 薹showpidd=19.asp 篷usertasp 邕channe睦d=24.a暑p 熊contentmessld=145,php 龟contentmessid=lSO.php 邕downIoad.a‘p link.asp 蘸showdie ̄id=107.asp 餐 =坞9-as 鸾¥ ̄=375tasp 邕shownews;d=380.asp 邕showpidd=22,asp useraction=lostpass.asp 图6文本格式过滤图 0 。. ,。1。q。 , 。 2 q。+ t 3且 .。。 。4.q。 , 。 S 趣 t。。 6霜. .. 。7 嚣bwc,zqu七dU.Cn 蕊dbyb,zqu edu n 蕊edf ̄qu.edurcn 蠡f 硼u }du :n gIss硐u du.cn ; igxy.zqu.edg.cn iwcJI.zqu.edu.cr ̄ 蕊iyzd ̄qu.edu n 照lyxy.zqu七du.cn 鬣msxy.zqu.edu cn 蕊ns4.zqu.edu cn qh ̄.zqu ed ‘cn 5zb qu.edu.oR wsc.zqu.edu.cn