JSpider学习三 —— 启动代码分析
来源:互联网 发布:什么是大数据服务 编辑:程序博客网 时间:2024/05/18 03:59
jspider.sh----------------------------------------------------------------------------------------------
JSpider从jspider.sh文件运行,在该shell脚本中指定了如下几个变量:
JSPIDER_HOME,JSpider的主目录,通过该目录去寻找conf/、output/、errors/等文件夹;
JSPIDER_OPTS,系统自定义的命令参数,定义了主目录、日志配置文件等内容;
JSPIDER_CLASSPATH,指定系统自带Jar包的类路径。
最后通过命令 java -cp $JSPIDER_CLASSPATH:$CLASSPATH $JSPIDER_OPTS net.javacoding.jspider.JSpider$1 $2 启动了Java程序。
net.javacoding.jspider.JSpider----------------------------------------------------------------------------------------------
原来用eclipse导入project来查看JSpider的源码,这样并没有把文件中的类源码和引用关联起来,阅读不方便。我重新导入,这次选择了project from existing ant build file,导入后自动把源码和引用关联起来了,而且自动加入了build相关的其他配置,也有了错误提示。Ant需要后续补充学习。
Java的主方法中:
首先通过CLI.printSignature()做了些提示工作,其中的一个常量BUILDTIMESTAMP不清楚如果写入code中的;
然后检查了参数个数,如果没有参数或者多余2个参数就提示后直接结束;
如果只有一个参数,调用ConfigurationFactory的getConfiguration()新建一个具有默认配置的JSpiderConfiguration实例;否则用第二个参数作为配置新建一个JSpiderConfiguration实例;
第一个参数用来生成一个URL实例,进而产生一个JSpider实例,最后调用JSpider的start方法。
JSpider的成员:
SpiderContext实例context,爬虫的一个上下文关系,由SpiderContextFactory根据传入的URL生成;
Spider实例spider,理解为一个爬虫程序,由SpiderNest类的实例的breedSpider(context)方法生成;
void start()方法,调用spider.crawl(context)方法,奇怪这里又传了一次context。
下一步将分析Spider的代码,以及JSpiderConfiguration与Spider的关系。
- JSpider学习三 —— 启动代码分析
- JSpider学习一 —— 基础
- JSpider学习二 —— 应用示例
- JSpider学习四 —— Spider
- JSpider学习五 —— WorkerThreadPool
- JSpider学习六 —— DispatcherThread和WorkerThread
- JSpider学习七——调试SpiderImpl的crawl
- JSpider学习笔记 ( by quqi99 )
- JSpider学习笔记(1)
- arm linux 启动代码分析(三)
- Openstack学习笔记之——Neutron-server服务加载与启动源码分析(三)
- u-boot_smdkv210 分析三:启动代码lowlevel.s分析
- u-boot_smdkv210 分析三:启动代码lowlevel.s分析
- eCos学习笔记之启动代码分析
- eCos学习笔记之启动代码分析
- eCos学习笔记之启动代码分析
- ExtJs源码分析与学习—ExtJs核心代码(三)
- webRTC学习三(代码分析)
- Oracle笔记
- 前端必读:浏览器内部工作原理
- vxWorks6.x下添加vxbus型的第三方驱动
- C++中作用域限定符"::"
- 标签
- JSpider学习三 —— 启动代码分析
- mysql在表的某一位置增加一列的命令
- 电池充电图标处理
- 求二进制数中1的个数
- STL中map用法详解
- PHP中,上传/下载文件的限制 (转)
- 谁能传一个LABjs框架源码吗?
- java打包exe
- android Notification分析