目前,大型博客一般都采用大量的AJAX技术,例如,展现博客评论时,用Javascript代码异步加载;又如,博文的点击数和回复数等元数据一般也用Javascript异步加载。页面抓取软件MetaSeeker具有很强的AJAX内容抓取能力,可以处理很多复杂情况,然而,MetaSeeker的可选配置项也很多,一时难于全面掌握。在此,我们讲解一个抓取腾讯博客内容的实例,展示怎样抓取AJAX异步加载的博文点击数。
目前,大型博客一般都采用大量的AJAX技术,例如,展现博客评论时,用Javascript代码异步加载;又如,博文的点击数和回复数等元数据一般也用Javascript异步加载。页面抓取软件MetaSeeker具有很强的AJAX内容抓取能力,可以处理很多复杂情况,然而,MetaSeeker的可选配置项也很多,一时难于全面掌握。在此,我们讲解一个抓取腾讯博客内容的实例,展示怎样抓取AJAX异步加载的博文点击数。
互联网上孕育的社会性媒体(social media)的发展速度十分惊人,给社会生活各方面带来很大冲击,快速传播和广泛覆盖是传统媒体(例如,industrial media,或者,traditional media)和口口相传无法匹及的。所以,网络舆情监测的受关注度越来越高,当网络舆情监测需求延伸到商业领域后,雄厚商业资金和其它资源的投入促发舆情监测的爆炸性增长。
网站数据抓取软件MetaSeeker的设计理念跟其它网络爬虫有些不同,其中一个比较显著的区别是MetaSeeker将抓取到的某些网页地址URL永久保存,而且可以对其进行一些操作,例如,开放给在线版用户的操作有线索激活和去活,还可以使用周期性抓取指令重建线索。
网页跳转基本上可以分成两种情形
Web页面信息抓取软件工具包MetaSeeker并不关心哪种跳转方式,都能进行信息抓取。但是,跳转后网页URL实际上已经改变了,在操作MetaStudio时需要注意几点。
假设需要采集京东商城网站上的所有手机产品的信息,包括:商品名、价格、商品图片(MetaSeeker只采集图片网址)等信息。例如,样本网页:http://www.360buy.com/products/652-653-655-0-0-0-0-0-0-0-1-1-1.html。
当前,一些大型社会性媒体(social media)网站(例如,博客、论坛、社交网)大量采用AJAX/Javascript,网页内容动态生成,而且同一个网页上的内容从多个信息源获得,这给网页信息抓取造成了障碍。下面以抓取新浪评论为例讲解怎样使用MetaSeeker抓取Ajax动态内容。现在,很多网站的新闻文章都允许评论,例如,新浪、搜狐、凤凰网等等,下面介绍的方法适用于其它类似网站。
Web文档抓取工具包MetaSeeker能够自动生成抓取规则,帮助用户大批量自动抓取Web文档,MetaSeeker核心数据存储和交换格式是XML,例如,信息结构元数据、Web文档抓取指令文件、抓取结果文件等等。
随着网络数据抽取软件工具包MetaSeeker的版本不断更新,AJAX数据抽取能力不断增强,本文讲解的技巧适合MetaSeeker V4.11.0及其以后版本。主要解决的问题是:假设当前网页P1上面有超链接,点击后网页内容修改,但是没有通过HTTP加载一个HTML网页文档,而是通过AJAX的异步通信机制,例如,采用XMLHttpRequest类接口,从服务器下载内容并局部更改网页内容。此时显示的网页数据的语义同P1网页的不同,我们称此网页为P2。
网络文档抓取工具包MetaSeeker具有很强的AJAX文档数据抓取能力,由于AJAX网站设计并无定式,可发挥空间很大,所以,MetaSeeker抓取AJAX文档的能力再强也不可能宣称适用所有AJAX情况,所以,GooSeeker采取逐步加强的策略,每个新版本都增加一些AJAX情形。
MetaSeeker发展到V4.10.0版本,不能抓取的AJAX文档有下面两大情形:
主题demo_comment_list_dangdang的翻页操作用javascript代码实现的,Web数据提取软件工具包MetaSeeker能够模拟用户点击行为,执行翻页操作,这是利用网页URL提取Web数据的普通网络爬虫和提取软件无法做到的。