新疆软件开发

本站首页 软件开发 成功案例 公司新闻 公司简介 客服中心 软件技术 网站建设
  您现在的位置: 新疆二域软件开发公司 >> Java技术 >> 文章正文

j2se 嵌入式脚本抓取引擎

本文来源于:http://www.cnblogs.com/birdshover/
J2SE 6.0 (有些地方也叫1.6)增加了脚本嵌入,使JAVA可以模拟动态语言的方式运行。这个类是ScriptEngineManager,被添加在javax.script命名空间中。执行脚本的程序很简单,看以下代码:

        ScriptEngineManager m = new ScriptEngineManager();
        ScriptEngine engine = m.getEngineByExtension("js");
        try {
            engine.eval("java.lang.System.out.println(\"测试脚本输出\");");
        } catch (ScriptException e) {
            log.Log("执行脚本错误:" + file.getFileName());
            log.Log(e.getMessage());
        }
在java执行的javascript代码中也可以调用java对象。这样就可以由java提供一些API,由javascript来组织逻辑部分。
比如,可以让上面的代码执行以下脚本:
var Crawler = com.cnblogs.yurow.engin.Crawler;
var StreamWriter = com.cnblogs.yurow.engin.StreamWriter;
var RAMFile = com.cnblogs.yurow.engin.RAMFile;
var out = java.lang.System.out;
var starturl = "http://www.cnblogs.com/birdshover/default.html?page=";


for(var i = 435112;i<435212;i++){
    var tempurl = starturl + i;
    var content = new Crawler(tempurl).getResponse("utf-8");
    if(content != null){
        var file = new RAMFile(tempurl,content);
        StreamWriter.Save("result/" + i + ".html",file,"utf-8",true);
    }
}
其中Crawler是抓取类,StreamWriter是用来保存文件的,RAMFile是内存中文件的组织结构。这些都是自己定义的java类。
我包装了一个JCrawler.jar,读取当前目录下的js文件以确定需要执行的脚本。这些脚本可能被存放在不同的目录。读取到这个目录列表,然后执行目录列表中每个javascript的逻辑。
演示抓取程序:

执行其中的bat文件就可以执行抓取,默认把抓取到的文件保存在result目录下。
写javascript的时候要注意脚本文件的注释最好不要使用单行只是“//”,而是要“/*  */”。运行环境需要jre6.0。

作者:佚名 | 文章来源:cnblog | 更新时间:2009-1-19 12:56:40

  • 上一篇文章:

  • 下一篇文章: 没有了

  • 相关文章:
    NET Framework 2.0 Service Pack 2下载地址
    解析.NET中的6各大的安全错误
    .NET中Boolean,bool以及String,string之间的区别
    在VC 程序中自定义Vista事件日志
    .Net FrameWork 2.0 新增功能 Bulk Copy
    教程:.Net多线程和Windows Forms编程
    C++函数对象count_if
    语法C# 问关键字之:base、this
    C#中“+”的两种功能
    透过HTTP进行异步Web Service 呼叫
    软件技术
    · 开发语言
    · Java技术
    · .Net技术
    · 数据库开发
    最新文章  
    ·j2se 嵌入式脚本抓取引擎
    ·JAVA开发的6个实践的例子
    ·JBuilder7 / Weblogic7开发
    ·JAVA中的抽象类型的一些概
    ·java语言开发程序中的几个
    ·了解java开发语言在软件开
    ·如何才能使用Java实现内部
    ·Java开发学习小心使用Date
    ·Java程序员应该了解那些开
    ·java性能优化的一些见解
    ·介绍JDK5.0一些collection
    ·基础学习:java中使用存储
    ·解析c#语言和java语言最相
    ·Java语言学习:jAVA中 的多
    ·Java是不是应该增加新特性
    关于我们 | 软件开发 | 下载试用 | 客服中心 | 联系我们 | 友情链接 | 网站地图 | 新疆电子地图 | RSS订阅
    版权所有 © 2016 新疆二域软件开发网 www.k8w.net All Rights Reserved 新ICP备14003571号
    新疆软件开发总机:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆乌鲁木齐北京中路华联大厦A-5C 邮编:830000