• API例子:用Java/JavaScript下载内容提取器




    1,引言

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

    2, 用Java下载内容提取器

    这是一系列实例程序中的一个,就目前编程语言发展来看,Java实现网页内容提取并不合适,除了语言不够灵活便捷以外,整个生态不够活跃,可选的类库增长缓慢。另外,要从JavaScript动态网页中提取内容,Java也很不方便,需要一个JavaScript引擎。用JavaScript下载内容提取器可以直接跳到第3部分的内容。

    具体实现

    注解:

    • 使用Java类库 jsoup(1.8.3以上版本),可以很便利、快速的获取网页dom。
    • 通过GooSeeker API 获取xslt(参考 1分钟快速生成用于网页内容提取的xslt
    • 使用Java自带的类TransformerFactory执行网页内容转换
    源代码如下:

    返回结果如下:


    3, 用JavaScript下载内容提取器

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

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

    具体实现

    注解:

    • 引用 jQuery 类库 (jQuery-1.9.0 以上)
    • 为了解决跨域问题,把目标网页预先保存到硬盘上
    • 在目标网页中插入JavaScript代码
    • 使用GooSeeker API,把内容提取器下载下来,内容提取器是一个xslt程序,下例使用了jQuery的ajax方法从api获得xslt
    • 用xslt处理器作内容提取

    下面是源代码:

    返回的结果截图如下


    4,展望

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

    5,相关文档

    1, Python即时网络爬虫:API说明

    6,集搜客GooSeeker开源代码下载源

    1, GooSeeker开源Python网络爬虫GitHub源

    7,文档修改历史

    1,2016-06-28:V1.0

  • 相关阅读:
    Anaconda3的Jupyter notebook调用ArcGISPro的Arcpy
    ArcMap 创建空间邻接矩阵
    Anaconda3的Jupyter notebook切换Python3和Python2环境并调用Arcpy
    PHP.MVC的模板标签系统(二)
    PHP汉字转拼音的类
    Linux 解压命令大全
    ASP应用之模板采用
    PHP中的串行化变量和序列化对象(一)
    CSS常用技巧介绍
    ASP实现多图片上传(一)
  • 原文地址:https://www.cnblogs.com/gooseeker/p/5623320.html
Copyright © 2020-2023  润新知