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处理器作内容提取
下面是源代码
- // 目标网页网址为http://m.58.com/cs/qiuzu/22613961050143x.shtml,预先保存成本地html文件,并插入下述代码
- $(document).ready(function(){
- $.ajax({
- type: "get",
- url: "http://www.gooseeker.com/api/getextractor?key=申请的appKey&theme=规则主题名",
- dataType: "xml",
- success: function(xslt)
- {
- var result = convertXml(xslt, window.document);
- alert("result:" + result);
- }
- });
- });
- /* 用xslt将dom转换为xml对象 */
- function convertXml(xslt, dom)
- {
- // 定义XSLTProcessor对象
- var xsltProcessor = new XSLTProcessor();
- xsltProcessor.importStylesheet(xslt);
- // transformToDocument方式
- var result = xsltProcessor.transformToDocument(dom);
- return result;
- }
复制代码
返回结果截图如下
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
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|
|
|
|
共 0 个关于本帖的回复 最后回复于 2016-6-10 07:44