论文地址: https://courses.cs.washington.edu/courses/cse454/05sp/papers/chakrabarti99focused.pdf
这是一篇非常详细的论文,成于1999年,关于主题爬虫引用数最高(高达2294次)的论文.
其具体做法是: 对种子url进行分类,其分类体系是树状的,并确保所有种子url都被分在叶子类目上,并训练出分类模型(论文中详细解释为什么要主题分类,而不是直接二分类)
然后由这些种子url出发开始抓取,有两种抓取模式: (1)hard focus模式: 抓取的分类预测后属于目标叶子类目的祖先类目也算相关,页面上的链接继续抓取, 如果不属于,那么页面上的链接就不继续抓取了 (2)soft focus模式: 属于目标网页的概率作为该页面上所有链接的优先级,每次都按优先级顺序去抓取网页(我个人比较倾向使用soft focus模式).
抓取一段时间之后就有一个web graph了, 所以就间歇性地通过web graph挖掘hub页面,挖掘hub页是通过运行hits算法.这里的hits算法和原始的hits不一样, 它的图是有向、边权重不对称的, 具体而言: 边u->v的权重为v为目标网页的概率,为了挖掘高质量的hub页,还要按分类概率阈值去除一些边.论文里这一功能组件叫distiller(蒸馏器).但论文这里,没有分析和比较为什么带权重更好,二者效果对比如何,有点遗憾.
他们是通过java applet + berkeley db实现的.
评估发现,相关页面的有效抓取率都能保持在50%以上,对多个topic使用不交叠的种子url,抓取3000条之后url交叠率保持在60~90%, 服务器、网站交叠率也同样如此,证明这一做法有较强的鲁棒性.
文中还有一个观察,发现的最优100个url,对于cycling主题而言,到种子页的距离从2到10相对比较均匀,mutal funds到种子页的距离则集中在10左右(因为hub页多数距离在8~9),证明骑行社区更有包容性、更具社交性.