主题识别可能会遇到的问题

MetaStudio在层级抓取方面提供了一些便利方法。层级抓取是网络爬虫从深度方面扩展爬行范围的手段,比如,先抓取新闻网站的新闻列表,主要目的是得到每条新闻的网址,然后深入下去抓取每条新闻的详细内容。深入抓取的层次数量可以无限多,用户需要用MetaStudio给每一层定义抓取规则。

假设用户已经用MetaStudio定义了第一级抓取规则,而且用DataScraper抓取了第一级,那么会为第二级生成很多线索,但是,此时还没有为第二级定义抓取规则,此时的主题状态是torecognize,表示该用户已经为第二级预定了主题名,正等待定义信息结构。此时,可以用一个便利方法定义第二级抓取规则。这个方法就是用MetaStudio执行主题识别,具体过程描述如下。

在MetaStudio的Theme List上查询第二级主题名,当主题名在主题列表上显示出来后,选中它,点击鼠标右键,在弹出菜单中选择“识别”。此时,MetaStudio会自动从第二级线索中选择一个网页作为样本页面,加载到MetaStudio的内嵌浏览器上,并且自动清空工作台,用户即可定义第二级的信息结构。但是,当用户做数据映射或者FreeFormat映射的时候,经常会遇到错误提示,在弹出窗口中显示:

    The location has been changed, so  the mapping makes no sense.

这个意思是说:MetaStudio认为自动选择了样本页面后,样本页面网址自动修改了,不是原来的了,所以,MetaStudio担心所作的数据映射就没有意义了。

发生这个错误的可能原因有多个,常见的有:1)自动加载样本页面的时候,样本页面做了跳转,虽然MetaSeeker能够抓取跳转后的网页内容,但是,在定义抓取规则的过程中不允许跳转。2)网页的网址可能被Javascript代码改变了。

如果出现这个错误提示,就不能用主题识别方法了,而是用普通的定义新抓取规则的过程,即,打开MetaStudio,或者清空已有的工作台内容,在地址输入框中手工输入样本页面的网址,加载网页,等跳转和变化都完了,网页内容稳定下来了,底端状态条上显示“完成”了,就可为其定义抓取规则了。

Comments

dd

ddd