主题爬虫

主题爬虫,又称聚焦爬虫(或专业爬虫),是“面向特定主题”的一种网络爬虫程序。它与我们通常所说的爬虫(通用爬虫)的区别之处就在于,主题爬虫在实施网页抓取时要进行主题筛选。它尽量保证只抓取与主题相关的网页信息。

 

聚焦爬虫的研究核心,集中在以下两点:

 

(一)   主题相关度计算:即计算当前已经抓下来的页面的主题相关程度。对主题相关度超过某一规定阈值的,即与主题相关的网页,将其保存到网页库;不相关的,则抛弃不管。

(二)   主题相关度预测:主题相关度预测是针对待抓URL的。也就是我们在分析当前已下载网页时所分离出来的哪些URLS。我们要通过计算它们的主题预测值来决定接下来是否对该URL所对应的网页进行抓取。

 

针对以上两个问题,研究聚焦爬虫的学者们大体提出了如下思路和方法来进行该课题的研究:

(一) 基于网络拓扑结构的研究方法:网络的拓扑结构表征了网页间的一种链接关系,而大部分互相链接的网页间还是有一定的主题关联性的。比方说,一个介绍“计算机学科知识”的网站首页上可能会出现“数据库”、“操作系统”等相关子学科的链接。这种链接本身就体现了一种主题上的关联性。再者,了解PageRank和HITS算法的朋友都知道,网页间的链接关系还能反映网页的重要程度,越是重要的网页被别的网页链接到的机会便越大。而比较重要的网页往往聚集了最上层的主题,它的主题可以反馈到它所链接的所有网页中。

(二) 基于网页内容的分析算法:基于网页内容的分析算法指的是利用网页内容(文本、数据等资源)特征进行的网页评价算法。它包括纯文本的分类与聚类算法和超文本的分类聚类算法。纯文本即网页上的文字内容,分析它的主题相关度主要从两个方面入手,一个是它主题词出现的频率(词频),再者就是主题词出现的位置,我们知道在网页标题中出现的词汇往往更能反映网页的主题信息。超文本,就是网页连接上的文字信息。它一方面可以作为当前页面主题相关度的一个判别标准,更主要的,它被用作主题预测值的计算,即判断该URL所对应的网页的主题相关性。

(三)   基于URL的分析:主要还是用于主题预测。从三个方面进行考虑:

1 URL串自身所携带的信息。对于以下两个链接的分析:

URL1:http://beijing.koubei.com/fang

URL2:http://beijing.koubei.com/lvyoupiaowu/lvyou

我们很容易知道URL1是有关北京(beijing)的与“房(fang)”的话题,而URL2则是有关北京(beijing)方面与旅游(lvyou)有关,并且会涉及到旅游票务(lvyoupiaowu)的网页。

 

2 URL可分为三个部分 前面部分的主题信息可以反馈到后面的子目录中;

一个URL分成三个部分(去掉http协议部分):host,path,query。其中,path由一系列directory组成,query由一系列键值对组成。比如http://www.sdust.edu.cn/news_show.php?id=15 ,其host为www.sdust.edu.cn;path为/news_show.php;query为id=15,组成该query的键值对为(id,15)。URL的host往往说明的一个大的主题,如www.sdust.edu.cn所对应的是“山东科技大学”的网站,他的大主题就是“山东科技大学”;而其后的path则表征了有关与“山东科技大学”有关的子类主题信息,比如时事新闻、科研建设、校园活动等等;query项所对应的是最为具体的信息,该实例中id=15对应的就是“山东科技大学 — 信息中心 -- 科学研究”目录下的“科研概况”信息。

3 URL锚文本所体现的信息。

锚文本也叫链接文本,指超链接的文本内容,一般认为,锚文本代表了网页作者对超链接所指向网页的评价和描述。因此,锚文本可能不会为网页自身的主题预测提供有用的信息,但是它极有可能为它的目标网页的主题预测提供非常重要的信息。比如对于<a href=”hyperlink”>聚焦爬虫</a>,所代表的网页主题很可能是聚焦爬虫方面的。

扩展锚文本指锚文本和锚文本附近文本的组合。引入扩展锚文本的概念是为了更准确地预测目标网页的主题相关度。在有些情况锚下,文本仅仅是“点击这里”、“详细信息”等较抽象的描述,这个时候扩展锚文本比锚文本身更具有描述能力。

 

说了一大堆关于主题爬虫研究方面的东西,不知道有没有说清楚。希望感兴趣的朋友能对聚焦爬虫的研究发表自己的看法,提出一些计算主题相关度和进行页面主题相关性预测的办法。以对我有所启发,万分感谢!

posted on 2011-10-25 22:50 长颈鹿Giraffe 阅读( ...) 评论( ...)   编辑 收藏

转载于:https://www.cnblogs.com/giraffe/articles/2224553.html

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据清洗是爬虫系统中非常重要的一部分,它可以帮助我们清除一些无用的信息,对爬取到的数据进行预处理,提高后续分析的效率和准确性。在基于Java低代码主题爬虫系统中,可以采用以下方法进行数据清洗: 1. 数据去重:去除爬虫爬取到的重复数据,可以使用Set集合来实现去重,例如: ```java Set<String> dataSet = new HashSet<String>(); for (String data : dataList) { if (!dataSet.contains(data)) { dataSet.add(data); } } ``` 2. 数据过滤:根据需要过滤掉不需要的数据,例如一些广告、垃圾信息等,可以使用正则表达式或者字符串的contains方法实现,例如: ```java for (String data : dataList) { if (data.contains("广告")) { continue; } if (data.matches(".*\\d{11}.*")) { continue; } // do something with the data } ``` 3. 数据格式化:将数据规范化为统一的格式,方便后续处理,例如将日期格式化为yyyy-MM-dd格式,可以使用SimpleDateFormat类实现,例如: ```java SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); for (String data : dataList) { Date date = sdf.parse(data); // do something with the date } ``` 4. 数据修正:对数据中的一些错误进行修正,例如拼写错误、语法错误等,可以使用字符串的replace方法实现,例如: ```java for (String data : dataList) { String correctedData = data.replace("recieve", "receive"); // do something with the correctedData } ``` 以上代码仅供参考,具体的数据清洗操作需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值