抓取手机游戏网页内容(CH1).pdf
文本预览下载声明
抓取手机游戏网页内容
也许受此手机游戏网站的动作游戏所吸引,想为自己做一个手机动作类游戏搜索引擎或者仅
仅是个简单的索引库,那么网页内容抓取软件工具包 MetaSeeker 就派上用场了,首先使用
工具包中的MetaStudio 工具定义抓取规则,从加载样本页面到生成游戏抓取规则,全部在
MetaStudio 图形化界面上操作,自动生成的内容抓取规则交给DataScraper ,后者爬行网站并
抓取网页内容。现在,我们要抓取这个网站上的动作类手机游戏列表,这是最简单的情形,
有下面几步:
操作步骤
运行 MetaStudio
运行 MetaStudio
加载样本页面
在 MetaStudio 的URL 地址输入框输入:/html/game/dongzuo/ ,回车后,
该页面作为样本页面被加载,MetaStudio 自动将网页内容的DOM 树显示出来, 如图 1
图 1(放大
命名主题
在 Theme Editor 工作台上命名主题,本例为:demo_game_list_basic
定义内容抓取规则
在 Bucket Editor 工作台上创建整理箱并定义内容抓取规则。此网页的游戏列表显示的有关游
戏的信息很少,实际上,该网页只是一个门户,用户在此找到喜欢的游戏后点击此游戏的超
链接进入详细的游戏页面。所以,从该网页上抓取内容的整理箱结构很简单,主要抓取游戏
名称和指向详细的游戏页面的超链接。 如图 2
图2 (放大)
怎样定义网页内容抓取规则在 MetaStudio 用户手册 中说明,图2 是执行了数据映射后的整理
箱结构,将 DOM 中的text 节点(编号 2392 )映射给name 信息属性;将@href 节点(编号
2391 )映射给game page 节点。至此,可以验证抓取结果了,点击 MAP 按钮,可以看到下
栏转换到 MAP 文件窗口,再点击右边的TestThis 按钮,即显示抓取结果(如图 2 )。
只抓取到一个游戏实例,显然不是我们的目的,怎样抓取列表中所有的游戏信息?这就是要
指导MetaStudio 计算出多实例重复规则。 MetaStudio 提供两种途径提取多实例:
1,FreeFormat 技术;2 ,样例复制品。前者在以后章节讲解,本网页上的FreeFormat 标志
很少,我们采用样例复制品方法。
样例复制品使用方法参见 MetaStudio 用户手册 , 图 3 显示映射完样例复制品后的界面,样例
复制品映射到容器节点game 上,右栏样例复制品管理栏中显示 DOM 节点号 2381 和 2393 作
为样例(都是HTML LI 元素)。验证抓取结果,看到整个列表都抓到了(图 3 )。
图3 (放大)
注意:从图2 可以看出,两个信息属性都设置了key 特性,如果要使用周期性提取的加速机
制,一个整理箱至少有一个信息属性设置key 特性,否则会报错。
定义下一层抓取线
抓取这个网页的主要目的是想进入每个游戏的详细信息页面,抓取详细内容,也就是说从当
前这个网页上抓取超链接,等网络爬虫下一轮调度时利用现在抓到 的超链接专门抓取游戏
详细信息,从图 2 可以看到,给信息属性 game page 制定特性时勾选了clue 和url ,表示要从
game page 信息属性中将超链接拿出来,作为下一层内容抓取的线索。
转到 Clue Editor 工作台,可以看到已经自动建立了一个Info 类的线索,它对应于game page
信息属性。同样我们要给他命名主题,起名为 demo_game_basic,不要与当前主题名相同,
因为分别表示不同的语义。
另外,这个列表页分页显示,所以,要指导网络爬虫翻页抓取,我们利用
显示全部