抓取雪球网股票信息

样本页面:http://xueqiu.com/S/SH601318

主题名:demo_fuller_xueqiu_list

雪球网的这个网页跟微博网站的网页很像,假设我们要抓取网友发表的关于中国平安的股票消息,跟抓取微博消息一样。而且,这个网站采用的动态网页技术也跟微博类似。这类动态网页的内容不断自动变化,如果在MetaStudio定义抓取规则过程中发生了变化,会有严重影响。

比较轻的影响是MetaStudio报错说:Cannot find the node,也就是说DOM被自动刷新了,必须要选择MetaStudio的菜单“文件”-〉“刷新DOM”,刷新DOM后,原来做的数据映射和FreeFormat映射都失效了,需要清除掉原来的映射,重新做映射。

比较重的影响会导致Firefox崩溃,也就是所有浏览器窗口都消失了。因为MetaStudio要用DOM节点做映射,万一在映射过程中这个DOM节点被动态删除了,MetaStudio就会因为找不到DOM节点而崩溃。

避免这些问题的方法是禁止JavaScript的执行,一旦禁止了JS的运行,网页不再动态刷新了,所以,一定要等到所有需要的信息都显示出来了再禁止。应该按照顺序执行如下步骤:

  1. 观察和等待所有需要抓取的内容都显示在浏览器上了
  2. 选择菜单“文件”-〉“禁止JS”
  3. 选择菜单“文件”-〉“刷新DOM”

这样就做好了定义抓取规则的准备工作。

后面的定义过程跟定义其他AJAX网页抓取规则一样,可以参看《卓越亚马逊的抓取方法》。关于Firefox崩溃的说明,参看《定义新浪微博抓取规则导致崩溃怎么办》