3. 聚焦网络爬虫
聚焦网络爬虫(Focused Crawler),在学术界也被称之为主题网络爬虫(Topical Crawler) [15],其原理是,通过预设的定制的网页页面数据分析算法,利用对应的策略筛掉和预定的主题没有关联的网页链接,仅仅把和预定主题有关的网页链接信息存入系统的尚未进行爬取的待爬队列中,然后再依据开始前已预设指定的爬取下载对应网页的算法依次爬取存放于待爬取队列中的各页面URL地址。聚焦网络爬虫的设计初衷就是为了满足不同用户在特定领域获取其想要的特定信息。由于只需爬取相关主题信息,对硬件等处理资源与网路资源的节省的效果是显而易见。
但在做主题爬虫之前要做的一件事的就是对待爬取网页链接URL地址以及网页内容通过特定算法进行分析。按照其对指定主题的贡献度大小来进行排列,因为利用不同的决策机制所取得的最终结果也不尽相同,最后会导致爬取下载的次序也存在差异。一般情况下存在如下四种决策机制:
1) 根据链接本身的分析:通常会使用如下两种计算方法,PageRank[16]算法,其通过算法得到对应网页页面的PageRank值,之后再依据对应结果的大小顺序爬取。另一类方法是HITS算法[17],使用算法直接计算出之前已经爬取的网页的Authority和Hub值,并依据计算出来的值的大小来对其在爬取队列进行排序,最后根据顺序爬取。
2) 基于网页内容分析:鱼群搜索(Fish Search)算法[18],其原理是将部分网页的关键词作为主题去搜索,整合主题搜索策略与关键词策略,爬虫认为只要含有指定关键词的网页就是与需要找的主题相关的网页,然后将其抓取下来,但其存在一个明显的缺点就是不能计算出页面与关键词明确的关联度,会对之后抓取的结果造成影响。于是之后Herseovic[19]在鱼群算法的基础上充分发挥该算法的优点针对其存在的缺点提出改进意见,增加通过使用空间向量来获得该网页与指定主题的关联度作为一个变量形成一个新算法。
3) 基于语境图:Diligenti等学者提出通过建立语境图(Context Graphs)[20]的方法来培训机器使其能够在运行过程中自发获取记录相关网页的主题关联度,通过对比已获取的网页与当前网页之间的距离,距离大小的表示其与主题的关联度大小。
在实例方面,IBM和印度理工大学合作开发了一款基于主题的典型主题爬虫[21],其通过使用一组相同主题的既定网页作为定义,然后使用分类器进行计算网页的主题关联度,其创造性的摒弃传统的关键词或是加权矢量来定义。
1.2 研究内容与论文组织
论文设计实现了一套可适用华侨路茶坊的爬虫系统,为之后的数据挖掘,舆论监控等后续工作采集数据,提供数据来源。论文首先调研网络爬虫的相关实现技术,特别是scrapy网络爬虫框架,以开题报告提出的需求作为出发点,给出爬虫系统设计的总体方案,之后再设计各个子模块,包括数据的采集、比较、存储,最后进行系统的测试。
下面来介绍下论文后续的主要内容及组织架构:
第二章介绍一下本文所采用的scrapy网络爬虫框架的基本原理及设计思路。并介绍爬虫所需要的正则表达式,XPath等主要技术知识。
第三章首先介绍下华侨路茶坊的网页结构,以及在爬虫系统中所需使用的信息。
第四章介绍设计的爬虫系统各个模块具体的设计思路与代码。最后介绍测试运行的结果。
第五章简要介绍Python网页框架django,并基于django搭建实时展示的网页平台。
第优尔章总结下论文的研究情况,并对系统的进一步改善提出建议方向。 Python针对社区论坛BBS的网络爬虫系统设计(3):http://www.youerw.com/jisuanji/lunwen_23857.html