1,引言

本文讲解怎样用JavaScript使用 GooSeeker API接口下载内容提取器,这是一个示例程序。什么是内容提取器?为什么用这种方式?源自GooSeeker的Python开源项目:通过生成内容提取器,大幅节省程序员时间。具体请参看《内容提取器的定义》。

请注意,如果本例的JavaScript代码是在网页上运行的,因为跨域问题,是无法实现非本站网页内容爬取的。所以,要运行在具有特权的JavaScript引擎上,比如,浏览器扩展程序、自研的浏览器、自己的程序中含有JavaScript引擎等。

本例为了实验方便,仍然放在网页上运行,为了绕开跨域问题,是把目标网页存下来并进行修改,把JavaScript插入进去。这么多人工操作,仅仅是为了实验,正式使用的时候需要考虑别的手段。

2,具体实现


注解:
  • 引用 jQuery 类库 (jQuery-1.9.0 以上)
  • 为了解决跨域问题,把目标网页预先保存到硬盘上
  • 在目标网页中插入JavaScript代码
  • 使用GooSeeker API,把内容提取器下载下来,内容提取器是一个xslt程序,下例使用了jQuery的ajax方法从api获得xslt
  • 用xslt处理器作内容提取
下面是源代码
  1. // 目标网页网址为http://m.58.com/cs/qiuzu/22613961050143x.shtml,预先保存成本地html文件,并插入下述代码
  2. $(document).ready(function(){
  3.     $.ajax({
  4.         type: "get",
  5.         url: "http://www.gooseeker.com/api/getextractor?key=申请的appKey&theme=规则主题名",
  6.         dataType: "xml",
  7.         success: function(xslt)
  8.             {
  9.             var result = convertXml(xslt, window.document);
  10.             alert("result:" + result);
  11.         }
  12.     });  
  13. });

  14. /* 用xslt将dom转换为xml对象 */
  15. function convertXml(xslt, dom)
  16. {
  17.     // 定义XSLTProcessor对象
  18.     var xsltProcessor = new XSLTProcessor();
  19.     xsltProcessor.importStylesheet(xslt);
  20.     // transformToDocument方式
  21.     var result = xsltProcessor.transformToDocument(dom);
  22.     return result;
  23. }
复制代码

返回结果截图如下
javascript结果文件.png


3,展望

同样可以用python来获取指定网页内容,感觉python的语法更加简洁,后续增加python语言的示例,有兴趣的小伙伴可以加入一起研究

4,相关文档
1, GooSeeker API说明(1)--下载内容提取器
2, GooSeeker API 例子——用Java下载内容提取器

5,集搜客GooSeeker开源代码下载源
1, GooSeeker开源Python网络爬虫GitHub源

6,文档修改历史
1,
2016-06-10:V1.0




举报 使用道具
| 回复

共 0 个关于本帖的回复 最后回复于 2016-6-10 07:44

您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Gephi社会网络分析-马蜂窝游记文本分词并同
  • Gephi社会网络分析-基于马蜂窝游记文本以词
  • 知乎话题文本根据词语间距筛选后生成共词矩
  • 马蜂窝游记文本分词后以词语间距为筛选条件
  • 学习使用apriori算法挖掘关联关系

热门用户

GMT+8, 2024-3-29 19:47