很多网页抓取工具一般只抓取表状信息,从而,这些工具一般将抓取结果用EXCEL表或者关系数据库表存储。MetaSeeker与之不同,可以抓取嵌套的树状信息,并用XML文件格式存储抓取结果。而网页上的内容本质上是用DOM树表示的,这样做数据映射关系很直接,表现出很强的抓取能力。一般来说,嵌套的树状结构数据如果需要存入关系数据库,则需要使用多个有关联的表,GooSeeker发布的MetaCorpora程序能够很灵活地将树状数据结构进行拆解并转存到MySQL关系数据库中。本文将讲解怎样定义树状整理箱(用于存储抓取结果的数据结构),将以抓取开心网的粉丝信息为例。抓取粉丝信息或者社交网络的好友关系有很多用途,例如,识别用户特征,发现意见领袖(e见领袖);又如,建立社交图谱,这些信息都可以用于建立舆情监测系统或者竞争情报系统。
本案例的抓取目标描述如下:
注意:读者可以将本案例提到的信息结构(用于生成抓取规则的对目标网页结构进行描述的信息)加载到MetaStudio上,帮助理解本文内容。但是,如果目标网页的结构改变了,可能会影响到信息结构的有效性,可能加载不成功,请参照《修改失效的抓取规则》对信息结构进行修改。
假设我们准备将下列结构的信息抓取下来:
图1
图1显示创建整理箱的过程:
图2
将所有信息属性添加上后,通过数据映射和FreeFormat映射定义抓取规则,图2显示如下步骤:
定义完成后,上载到MetaSeeker服务器上,以便DataScraper随时随地使用这个抓取规则。
图3
图3显示抓取结果片断,为顶层容器节点只抓取到一个实例,而“粉丝列表”中有多个实例。
图4
图4显示用微软MS Excel打开抓取结果XML文件看到的内容,可以看到由于“粉丝列表”有多个实例,为了用二维表格显示数据,“粉丝数”和“访问数”每行都拷贝了一遍,造成数据冗余。如果将抓取结果导入MySQL关系数据库,最好消除数据冗余,即分解成两个表,可以通过外键关联在一起。如果使用MetaCorpora语料库管理系统导入数据库,既可以采用有冗余方式,也可以采用消除冗余方式,只要做相应配置即可。
Comments
如何实现批量的抓取文中的信息
文中一个用户的粉丝数以及访问数和粉丝列表都抓取过了,如果实现批量的抓取很多用户的同样的信息?而不是一个一个的去抓取,谢谢了
先生成线索
具有相同网页模板的网址,都可以放在一个主题下抓取,在线版用户生成线索的方法有两个(不包括在MetaStudio上一个个上载,那样太慢)
1,在http://www.metacamp.cn/datastore/manageclue.htm 网页上,搜索到相应主题,有录入网址的界面,一个个录入
2,自己写一个网页,上面全部是要生成线索的网址,比如,在ul标签中用100个li标签存储100个网址,针对这个网页做一个主题,专门抓取这些网址,而且设置clue特性,就能在Clue Editor工作台上出现第二级主题名输入界面,这就定义了一个二级抓取,第二级的主题就是你先前定义的抓微博的主题