应届生求职网手机APP

应届生求职招聘论坛

QQ登录

只需一步,快速开始

查看: 4764|回复: 0

线点科技垂直搜索产品(Javascript开发说明)

[复制链接]
吃吃      

主题

好友

90万

积分

管理员

发表于 2008-8-20 10:33 |显示全部楼层

北京线点科技有限公司

二零零六年一月

一、开发环境简介

1.1 编程环境

北京线点科技有限公司垂直搜索产品构建环境为JBuilder 2006,操作系统为Windows,使用的JDK版本为JDK1.5,为了避免在开发过程 ** 现不一致的CLASS小版本号码不一致,建议在二次开发过程中使用JDK1.5。在使用本公司产品过程中如果出现提示CLASS版本不一致的错误提示信息,请联系本公司相关人员。JDK1.5以下版本暂不支持。

本产品默认的部署上下文环境为/,推荐使用根目录作为本产品的运行目录。

1.2接口开发环境

本公司垂直搜索产品javascript开发接口构建于RhinoRhino支持Javascript部分功能,如:赋值、运算、判断语句、循环语句等,不支持和浏览器相关的对象及其操作。

二、数据库功能

2.1数据库的配置

本产品数据库默认的数据库支持的数据库主要包括:mysqloraclepostgressysbasedb2ms sql server,默认使用的数据库为mysql 5.0,数据库编码为UTF-8

2.2数据库的管理

本产品包含独立的数据库管理功能,但不提供数据维护接口,也不推荐从外部访问本产品数据库数据。2007版数据维护功能参考用户使用手册。

三、Javascript开发说明

3.1内置对象

本产品对javascript为方便二次开发,增加了10个内置对象,分别为:crawllist1list2list3list4list5logurlservicereturnValue

crawl(最后一个字符是L的小写) 类:com.xdtech.platform.core.script.ScriptCrawlTool

crawl开放的方法主要有三个。

方法一:public java.lang.String getContent(java.lang.String inputURL , java.lang.String encoding)  传入的参数是目标数据的URL和目标数据页面编码,编码可选的值包含GB2312/GBK/UTF-8等。使用说明:

在数据采集àURL发生器 ,创建一个javascript脚本,完整类名为:com.xdtech.platform.core.script.BSFScriptManage,详细说明参见用户手册。在脚本代码中填写如下内容:

var content = crawl.getContent("http://www.xd-tech.com.cn","GBK") ;

则在执行完毕之后变量 content的值为http://www.xd-tech.com.cn首页的内容

       方法二:public java.util.List getURL(java.lang.String content , java.lang.String regex) 传入的参数是目标数据页字符串和解析的正则表达式,注意,对目标数据页的解析只返回正则表达式的第一个有效分组,例如:有正则表达式 ([\W]*?)+\..([\d]{5}) ,则在进行解析以后返回的数据只获得第一个([\W]*?)分组,而忽略第二个([\d]{5})分组。使用说明(接上例)

       crawl.getURL(content , "<A class=zc href=\"([\\S\\s]*?)\"");

       此行代码返回一个java.util.ArrayList对象,包含对content内容使用<A class=zc href=\"([\\S\\s]*?)\"正则表达式解析获得的分组内容

       方法三:public java.util.List getURL(java.lang.String content , java.lang.String regex , java.lang.String startIndexRegex , java.lang.String endIndexRegex) 传入的参数是目标数据页字符串、解析正则表达式、截断数据页的开始截断正则表达式、截断数据页的结束正则表达式。使用说明:

       crawl.getURL(content , "<A class=zc href=\"([\\S\\s]*?)\"",”010-82894756”,” 联系我们”);

       此行代码返回一个java.util.ArrayList对象,包含对content部分内容使用<A class=zc href=\"([\\S\\s]*?)\"正则表达式解析获得的分组内容,content部分是指从”010-82894756”(indexof)开始到联系我们”(indexof)结束的子字符串。

url接口:com.xdtech.platform.plugin.url.InnerURL

url开放的方法主要的有一个:

   方法一:public void setUrl(String s);

传入的参数是url 地址,如果不是服务器端将会抛错。

使用示例:

url.setUrl(”http://www.xd-tech.com.cn”);

Service接口: com.xdtech.platform.dao.IBase

service开放的方法主要的有一个:

方法一:  public void saveIObject(InnerURL obj);

传入的参数obj必须是InnerURL类型对象.

使用示例:

url.setUrl(”http://www.xd-tech.com.cn”);

service. SaveIObject(url);

list1-list5 java.util.ArrayList list1-list5是暂时存放数据的临时list,不返回数据。

       使用示例:

var content = crawl.getContent("http://co.163.com/e_p_3.htm","GBK") ;

list1=crawl.getURL(content,"<font[^>]*?>([\\d]*?)</font>");

var m=list1.remove(0);

var n=parseInt(m);

for(i=0;i<n;i++){

   content = crawl.getContent("http://co.163.com/neteaseivp/ecatalog/product.jsp?pageSize=15&way=3&pageIndex="+i,"GBK") ;       list2=crawl.getURL(content,"<a[\\s]+?onmouseover=\"[^\"]*?\"[\\s]+?href=\"(/e_pd_[\\d]*?_3\\.htm)\"[\\s]+?target=\"_blank\">");  

    var num=list2.size();

    for(j=0;j<num;j++){

              var s="http://co.163.com"+list2.remove(0);

        url.setUrl(s);

        service.saveIObject(url);

        }

}

log java.util.logging.Logger

使用示例:log.info(“测试输出”);  则可以在系统控制台脚本执行时看到相应的输出信息

returnValue类:java.util.ArrayListreturnValue是最终返回给JVM的数据结构。所有的最终返回数据必须存入returnValue

使用示例:

var content = crawl.getContent("http://www.xd-tech.com.cn","GBK") ;

returnValue = crawl.getURL(content , "<A class=zc href=\"([\\S\\s]*?)\"");

       说明:第一行代码是获得目标数据页字符串,第二行代码是解析目标数据页并获得目标URL列表,并将目标URL列表存入returnValue 则代码执行完毕之后将所有解析获得到的URL数据存入系统数据库中。

回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条


应届生求职网APP扫码下载

应届生APP|Archiver|应届生求职网YingJieSheng.COM ( 沪ICP备12015550号-13 )  

GMT+8, 2019-6-25 02:23

Powered by Discuz!

© 2001-2012 Comsenz Inc.

           

快速回复 返回顶部 返回列表