网页数据抓取系统解决方案
来源:计算机世界 更新时间:2012-04-15

 

 1. 引言

  项目背景

  在互联网络的时代,信息如同大海般没有边际。甚至我们获取信息的方法已经发生改变:从传统的翻书查字典,继而变成通过搜索引擎进行检索。我们从信息匮乏的时代一下子走到了信息极大丰富今天。

  在今天,困扰我们的问题不是信息太少,而是太多,多得让你无从分辨,无从选择。因此,提供一个能够自动在互联网上抓取数据,并自动分拣、分析的工具有非常重要的意义。

  我们通过传统的搜索引擎所获得的信息,通常是通过网页的形式所展现的,这样的信息人工阅读起来自然亲切,但计算机却很难进行加工和再利用。而且检索到的信息量太大,我们很难在大量的检索结果中抽取出我们最需要的信息。

  本方案中所涉及的数据聚合系统正是由此而生。该系统根据一定的规则,在指定的网站中进行信息抓取,并将抓取到的结果分析、整理后保存在结构化数据库中,为数据的再次利用提供准备。

  中华英才网是著名的大型招聘类网站。为了对招聘市场的整体容量进行全面、细致了解,帮助中华英才网全面了解其他竞争对手的情况,为市场人员提供潜在的客户信息,我们特提供该解决方案。

  任务和目的

  杰软公司和中华英才网合作开发数据自动聚合系统,通过该系统从互联网上获取开放的信息资源,并对信息进行分析、处理和再加工,为中华英才网的市场营销部门提供准确的市场信息资源。

  2. 方案设计原则

  在我们进行系统方案设计时充分考虑到了如下两个原则,并将始终贯穿于设计和开发过程中:

  系统的准确性

  该系统需要从互联网络这个巨大的信息海洋里获取信息,如何保证其所抓取的信息的准确性、有效性,是评价整个系统价值的关键因素。因此,我们除了需要对抓取的信息进行分拣、分析外,当目标网站的内容、格式发生变化时,能够智能感知,并及时的通报、调整也是确保系统准确性地重要手段。

  系统的灵活性

  尽管该系统是针对少数用户提供服务的、对固定站点进行监测的内部系统,但仍然需要具备一定的灵活性和较强的可扩展性。

  因为目标站点的结构、层次、格式是不断变化的;而且本系统需要抓取的目标站点也在不断的调整;因此该系统必须能够适应这种变化,在抓取的目标发生变化时,系统能够通过简单的设置或调整就能够继续完成数据聚合任务。

3. 解决方案:

  1. 功能结构图


  


图4-1 系统功能结构图



  2. 定义格式,编制脚本

  首先,我们需要根据需要抓取的目标网站的特点,编制抓取的脚本(格式)。包括:

  ● 目标网站的URL路径;

  ● 用什么样的方法获取数据?可以用模拟查询功能的方法(手工检测查询页面提交的参数,并模拟提交);也可以通过序列号从头到尾进行遍历(需要找出当前最大的序列号值);

  ● 针对每个网站的特点进行编制(标准、脚本);

  3. 抓取数据

  系统所提供的耙子程序会根据预先定义好的XML格式执行数据抓取任务,为防止目标网站的侦测程序发现,我们建议将抓取到的页面直接保存,然后再作处理。而不是在获得信息后立即加以处理,这对于提高抓取的效率和保留第一手的资料都是非常有价值的。

  ● 通过定义好的脚本模拟登录;

  ● 对下拉列表中的查询项,用循环遍历列表中的每一个值。并对查询出结果的页面进行模拟翻页操作,获得其所有的查询结果;

  ● 如果职位库或企业名录库是使用自增性的整数作为其唯一标示的ID,那么我们可以想办法获得其最大值,然后通过遍历的方法将其全部抓取下来;

  ● 定期执行抓取操作,并对抓取到的数据进行增量保存;

  4. 简单分析

  在外网的服务器上对采集到的数据进行简单的分析、处理,其内容主要包括:

  ● 结构化数据:将获取到的数据结构化,可以便于未来的数据传递,也便于下一步的排重、排错检查任务。

  ● 排除重复;在用模拟查询的方法进行遍历的时候,系统所抓取到的数据一定会出现重复。由于重复数据会造成重复的分析处理过程,不但占用了系统的资源,使得系统的处理效率变低,也给系统带来大量的垃圾数据。为了避免大量重复、冗余的数据出现,我们首先要作的处理工作就是排重。

  ● 排除错误;由于目标站点的内容、结构、格式的调整,会造成系统抓取失败,或抓取到大量的错误信息,在排除这些误抓的信息的同时,我们通过对数据错误率的判断,可以获得目标站点是否已经变更的信息,及时向系统发出预警通知。

 5. 数据传回内部

  系统将处理完成的数据通过Web Service发回企业内部。唯一需要考虑的就是如何实现增量更新,否则每天大量的数据全部更新到本地数据库会造成网络的阻塞。

  6. 数据分析

  这里的数据分析和前面所描述的,在远端的服务器上所做分析操作不太相同,后者是为了简单、有效的过滤数据,防止数据冗余而造出的处理速度过慢或网络阻塞等问题;而前者则是为了给未来的人工确认提供方便,有效的帮助市场人员进行快速人工分拣。具体如下:

  ● 按照地域区分;

  ● 按照准确程度进行划分;帮助用户优先处理哪些有效性较高的信息;

  ● 按照发布职位的数量进行划分;

  ● 记录每一个企业所发布职位的变化过程;

  7. 人工确认

  这部分的重点在两个方面:1、提供友好的人机界面,让人工对这些信息进行确认;2、和英才网的职位库进行比对,将其中的差异部分提取出来,供人工确认:

  通过和市场人员的交流、沟通,了解他们所关注的信息,按照他们所期望的方式提供数据,完成人工确认工作。

  8. 统计汇总

  汇总统计功能也是数据聚合系统的重要组成部分,该系统将提供如下类型的统计汇总功能:

  ● 以网站为单位,对各网站日新增的企业、职位等信息进行统计;

  ● 对大型企业进行跟踪,统计其在各个网站上发布的信息职位的记录;

  ● 以时间为单位,按日、周、月对各种信息进行统计汇总;

  ● 按照地域、企业、职位进行统计汇总;

  ● 其他;

  


图4-2 模拟统计汇总界面