**Python爬虫大数据采集与挖掘(7)
--主题爬虫页面采集技术与Python实现提纲主题爬虫的使用场景主题爬虫技术框架主题及其表示相关度计算例子主题爬虫也称为聚焦爬虫,与普通爬虫不同,它主要采集与某些预先设定好的主题相关的Web页面。主题爬虫的应用场景主要有以下三大类。1.垂直搜索引擎如汽车行业、医疗行业等中的专业搜索引擎。2.网络舆情监测网络舆情关注于某个特定的主题,需要爬虫对该主题的相关页面进行抓取,其他无关的则不需要3.商业情报搜索提纲主题爬虫的使用场景主题爬虫技术框架主题及其表示相关度计算例子主题爬虫在普通爬虫的基础上增加了主题定义、链接相关度估算和内容相关度计算三大技术实现。相比于普通爬虫,主要增加的部分主题信息是主题爬虫中最为重要的部件,它为两个相关度计算提供衡量标准。因此,要求主题信息必须容易被用于相关度计算。在两个相关度计算过程中,实际上隐含了某种过滤过程,也就是把不符合相关度要求的页面过滤掉,这种决策通常是由用户来执行,具体可体现为用户设定相关度阈值。在主题爬虫中,主题是核心部分,在具体实现时主题的生成和相关度的计算都需要涉及对文本内容的处理主要技术包括文本预处理、主题及实现技术、主题相关度计算等。本章后续围绕主题模型构建及相关度计算中的主要技术进行叙述,文本预处理、高级主题建模等技术是各类爬虫采集应用的共性技术问题,将在第十一章(主题)进行介绍。提纲主题爬虫的使用场景主题爬虫技术框架主题及其表示相关度计算例子一是,采用关键词集来描述一个主题。如果我们想抓取与“大数据”有关的页面,最简单的方式就是用“大数据”这个词汇作为主题的定义,但是不含有大数据的页面也可能是与“大数据”相关的,例如一些讨论数据挖掘技术的页面。因此,采用关键词集合描述主题时,需要尽可能完整地考虑到所关注的主题可能涉及到关键词。二是,对关键词集进行某种划分,通过对子主题的描述来实现对整个主题的定义。比如对于“大数据”这个主题,可以按照交通、金融等应用领域来划分大数据,也可以按照采集、存储、挖掘等技术构成来划分,从而可以产生不同的子话题。主题的定义,最终目前是要能够方便链接相关度和内容相关度的计算,因此,它必须有一种比较明确的数学表达形式。根据上述两种方式的叙述,它们所采用的数学表示方式分别叙述如下,具体的分析说明在本书的后续章节中会展开。提纲主题爬虫的使用场景主题爬虫技术框架主题及其表示相关度计算例子在主题爬虫中,相关度的计算包含了链接相关度和内容相关度计算两大部分。在整个主题爬虫的处理流程中起到的作用各不相同。但是,不管是哪一个,都可以归结为一个文本与主题模型的相似度计算问题。内容相关度对于大数据主题,我们可以定义该集合为:A={大数据、存储、采集、挖掘、特征、爬虫、平台、分布式},假设有一个页面提取得到对应的词汇集合B={大数据、爬虫、采集、技术},那么这两个页面的相关度J(A,B)=3/(8+4-3)=0.33ai,bi分别是主题向量和正文内容向量的第i个维度的权重值,n是向量空间维数。如图7-3是余弦相关度的含义示例,这是一个两个词汇组成的向量空间,a、b分别是主题向量和页面内容向量。链接相关度一,超链接的锚文本,即一个超链接上显示的文字。这种文本信息一般非常有限,但是锚文本中的关键词在反映真实内容方能通常具有很强的代表性。其缺点就是,锚文本一般很短,经过词汇提取之后,通常需要进行一定的词汇语义扩展,找到更多可能与主题相关的词汇,这样可以提升与已定义好的主题的链接相关度计算准确性。二,超链接周围的锚文本,也就是某个超链接前后一定范围区域内所有锚文本所构成的文本信息。这种信息在进行相关度估算时也具有一定的参考价值,这是由于WEB页面的设计者为了增加用户体验度,通常会把一些内容上相似或相关度比较高的超链接放在一起,我们把这种现象称为超链接的主题聚集性。如图7-4,互联网、IT等相关的链接被组织在一起。可以用周围的文字来扩展某个超链接的锚文本。要使用此类信息,就必须对HTML结构进行一定分析,比如都是同属于一个表格栏的,否则就不是很容易确定超链接的计算范围。三,超链接结构信息。对于爬虫系统来说,页面超链接是不断累积起来的,因此在爬虫工作过程中,对于某个页面P,可以通过已经爬行的页面中提取出来的指向该页面超链接来进行相关度的估算。这种估算会随着爬行的页面越多而越准确。基于这种链接结构的一般假设是主题相关高的页面通常也会比较密集地链接在一起,因此就需要在获取新的页面之后对所有页面的主题相关度重新评估。**