E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
heritrix
Heritrix
3.1.0 源码解析(二十一)
上文中的抽象类Scoper关联到另外一个成员变量DecideRule scope,我不得不先中断处理器类的分析(后面再继续处理器分析),来插叙一下DecideRule scope对象,我说了,DecideRule scope成员是用来控制CrawlURI caUri对象的范围 照例先来浏览一下DecideRule相关类图 DecideRule类是一个抽象类,用来判断一个CrawlURI c
·
2015-11-01 15:27
Heritrix
Heritrix
3.1.0 源码解析(十八)
从本文开始,我们来分析与
Heritrix
3.1.0系统的处理器相关的源码,在
Heritrix
系统里面,待处理的CrawlURI cURI对象经过系统里面的处理器的重重处理最后才得以修成正果 因为处理器很多
·
2015-11-01 15:26
Heritrix
Heritrix
3.1.0 源码解析(十九)
本文继续分析与
heritrix
3.1.0系统的处理器相关的源码 我们照例先来浏览一下class uml图 所有的处理器都继承自抽象父类Processor,其中重要的方法如下 /**
·
2015-11-01 15:26
Heritrix
Heritrix
3.1.0 源码解析(七)
本文接下来分析上文涉及到的ObjectIdentityCache接口及相关对象 先熟悉一下继承和依赖关系,简要UML类图如下: 我们先来了解一下ObjectIdentityCache接口的源码(泛型接口) /** * An object cache for create-once-by-name-and-then-reuse objects. * * Objects a
·
2015-11-01 15:25
Heritrix
Heritrix
3.1.0 源码解析(一)
Heritrix
是一个比较经典的开源爬虫,本人打算用它来做一些数据采集应用 网上关于
heritrix
系列的博文 大多是老版本的(1.14.4版本),
Heritrix
3.1.0版本的文章则极其稀少
·
2015-11-01 15:24
Heritrix
Heritrix
3.1.0 源码解析(十)
本文要分析的是
Heritrix
3.1.0的Frontier组件,先熟悉一下相关的UML类图 通过浏览该图,我们可以清楚的看出Frontier组件的相关接口和类的继承和调用关系,不必我再文字描述了&
·
2015-11-01 15:24
Heritrix
[wbia 1.4]修改
Heritrix
代码得到网页间的链接关系
1.2中提到可以通过修改
Heritrix
代码得到网页间的链接关系,这里说下如何进行修改。
·
2015-11-01 12:51
Heritrix
Heritrix
3.1.0 源码解析(三十六)
接下来本文还要继续分析
Heritrix
3.1.0系统中的CrawlController类及BdbFrontier类,因为本人觉得前面部分对相关逻辑还没用理清头绪,更重要的原因是由于每篇文章的关注点不同,
·
2015-11-01 11:29
Heritrix
How Tomcat Works(一)
如果说
Heritrix
3.1.0系统主要涉及的是客户端的SOCKET编程,那么本系列的How Tomcat Works主要涉及的是服务器端的SOCKET编程 目前关于解析Tomcat源码的文章比较多,
·
2015-11-01 11:28
tomcat
目前网络上开源的网络爬虫以及一些简介和比较
目前网络上有不少开源的网络爬虫可供我们使用,爬虫里面做的最好的肯定是google ,不过google公布的蜘蛛是很早的一个版本,下面是几种开源的网络爬虫的简单对比表: 下面我们再对Nutch、Larbin、
Heritrix
·
2015-11-01 10:28
网络爬虫
Heritrix
研究笔记(一)
这个开源的Web爬虫,Internet Archive在它的官方文档中说只维护在linux下,我不想用那么麻烦的bash shell去设置那些环境变量什么的,所以还是偷点懒,自己写个windows命令脚本来让这个爬虫在windows下面跑起来吧,现在就跟我来吧,呵呵。 要
·
2015-11-01 09:11
Heritrix
Heritrix
之旅之CrawlController
一转眼暑假就快要结束了,暑假也是在趁着找工作之前花时间折研究了一下
Heritrix
,这段时间会花点时间把这块学习和心得来做一个总结,一方面对知识的夯实,另一方面也能对园子里面的朋友有所帮助。
·
2015-10-31 11:41
controller
Heritrix
之旅之Frontier
上一篇Blog中说到了抓取任务的核心类CrawlController,这次我们来说说Frontier.Frontier是每次抓取时必须要用到的组件,每个Frontier知道哪个URI它正在处理,ToeThreads向Frontier请求URI,然后通过处理链对其进行处理,并将发现的连接通过scheduled返回到Frontier中,Frontier本身管理一个关于uri的列表,这个列表中的uri将
·
2015-10-31 11:41
Heritrix
Windows, Eclipse下开发
Heritrix
3.1 (一)环境搭建
原文地址:http://hj-learning.iteye.com/blog/1757275 花费了大半天时间在Window系统中搭建
Heritrix
3.1的Eclipse开发环境。
·
2015-10-31 11:35
Heritrix
【课程分享】基于Lucene4.6+Solr4.6+
Heritrix
1.14+S2SH实战开发从无到有垂直搜索引擎
对这个课程有兴趣的朋友,能够加我的QQ2059055336和我联系,能够和您分享。 课程介绍:最有前途的软件开发技术——搜索引擎技术 搜索引擎作为互联网发展中至关重要的一种应用,已经成为互联网各个领域的制高点,其重要性不言而喻。搜索引擎领域也是互联网应用中不多见的以核心技术作为其命脉的领域,搜索引擎各个子系统是怎样设计的?这成为广大技术人员和搜索引擎优化人员密切关注
·
2015-10-31 11:20
Heritrix
Heritrix
3.1.0 源码解析(六)
本文分析BdbFrontier对象的相关状态和方法 BdbFrontier类继承自WorkQueueFrontier类 WorkQueueFrontier类继承自AbstractFrontier类 BdbFrontier类的void start()方法如下(在其父类WorkQueueFrontier里面): org.archive.crawler.frontier.BdbFro
·
2015-10-31 10:40
Heritrix
今天部署了
Heritrix
今天试着部署了下
Heritrix
爬虫,之前没有玩过java,准备环境花了不少时间,先是32bit和64bit环境的问题,在win2008上安装了32bit的jvm,结果下载了64bit的eclipse,
·
2015-10-31 10:21
Heritrix
[wbia 1.2]关于
Heritrix
的日志
用
heritrix
爬得结果之后,开始计算结果页面的pagerank。计算pagerank需要得到url之间的链接关系。
·
2015-10-31 09:30
Heritrix
[wbia 1.1]
heritrix
抓取网页信息
我对
heritrix
的了解较浅,希望此文对第一次用爬虫的程序猿有帮助。如果有什么错误请直接留言指正,不胜感激。
·
2015-10-31 09:30
Heritrix
Heritrix
3.1.0 源码解析(三十一)
从BdbFrontier对象的next方法(从某个Classkey标识的BdbWorkQueue工作队列)取出来的CrawlURI uri对象第一步要进入的处理器是Preselector处理器,该处理器主要是对CrawlURI uri对象根据配置文件里面配置的正则表达式进行过滤,通过过滤的CrawlURI uri对象才能进入下一步的处理器,该处理器继承自Scoper类(Scoper类我在前面的文章
·
2015-10-31 09:10
Heritrix
Heritrix
3.1.0 源码解析(二十九)
本文接下来分析CrawlServer类和CrawlHost类,两者都实现了IdentityCacheable接口(可缓存对象接口) CrawlServer对象代表服务器,里面存储了服务器的相关信息,包括服务名 端口 robots信息 Credential集合及相关操作等 private static final long serialVersionUID = 3L; publi
·
2015-10-31 09:10
Heritrix
Heritrix
3.1.0 源码解析(二十五)
Heritrix
3.1.0 源码解析(二十三)中我们分析了
Heritrix
3.1.0系统是怎样扩展HttpClient组件的HttpConnection连接对象和相应的管理接口HttpConnectionManager
·
2015-10-31 09:10
Heritrix
Heritrix
3.1.0 源码解析(二十四)
上文中我们提到Recorder httpRecorder = Recorder.getHttpRecorder()对象封装了SOCKET连接的输出流和输入流,我们下面来看看Recorder类是怎么封装SOCKET的输入流和输出流的 Recorder类的重要成员如下,主要包括封装的输入流和输出流以及有序的字符序列(缓存到本地文件) private RecordingInputStrea
·
2015-10-31 09:10
Heritrix
Heritrix
3.1.0 源码解析(二十二)
本文继续分析
Heritrix
3.1.0系统的源码,其实本人感觉接下来待分析的问题不是一两篇文章能够澄清,本人不能因为迫于表述而乱了问题本身的章法,接下来的分析的
Heritrix
3.1.0系统封装HttpClient
·
2015-10-31 09:10
Heritrix
Heritrix
3.1.0 源码解析(二十三)
上文分析了
Heritrix
3.1.0系统是怎么扩展HttpClient组件的ProtocolSocketFactory接口用于创建HTTP和HTTPS连接的SOCKET对象的 接下来我们分析
Heritrix
3.1.0
·
2015-10-31 09:10
Heritrix
Heritrix
3.1.0 源码解析(二十七)
上文分析了
Heritrix
3.1.0系统的对请求认证机制的封装,本文接下来分析
Heritrix
3.1.0系统对cookies的处理的封装
Heritrix
3.1.0系统提供了CookieStorage
·
2015-10-31 09:10
Heritrix
Heritrix
3.1.0 源码解析(二十六)
上文分析了
Heritrix
3.1.0系统对HttpClient组件的请求处理类的封装,本文接下来分析
Heritrix
3.1.0系统是怎样封装请求证书的
Heritrix
3.1.0系统的package
·
2015-10-31 09:10
Heritrix
Heritrix
3.1.0 源码解析(三十)
作为CrawlURI uri对象在处理器链中的生命周期,本人认为逻辑上应该从FrontierPreparer处理器开始,再经过后续的处理器(其实具体CrawlURI uri对象的生命周期,是在它的父级CrawlURI uri对象的抽取处理器处理时已经初具雏形,父级CrawlURI uri对象与它的子级CrawlURI uri对象的生命周期是交错的,关于处理器的流程我在前面已经描述过) 经过Fro
·
2015-10-31 09:10
Heritrix
Heritrix
3.1.0 源码解析(十五)
本文分析
Heritrix
3.1.0系统里面的WorkQueue队列(具体是BdbWorkQueue)的调度机制,这部分是系统里面比较复杂的,我只能是尝试分析(本文可能会修改) 我在
Heritrix
3.1.0
·
2015-10-31 09:09
Heritrix
Heritrix
3.1.0 源码解析(二十)
本文接着上文分析,CandidateChain candidateChain处理器链相关联的处理器 CandidateChain处理器链有两个处理器 org.archive.crawler.prefetch.CandidateScoper org.archive.crawler.prefetch.FrontierPreparer 要了解上面的处理器,我们先要了解另外一个抽象类Scoper,
·
2015-10-31 09:09
Heritrix
Heritrix
3.1.0 源码解析(六)
本文分析BdbFrontier对象的相关状态和方法 BdbFrontier类继承自WorkQueueFrontier类 WorkQueueFrontier类继承自AbstractFrontier类 BdbFrontier类的void start()方法如下(在其父类WorkQueueFrontier里面): org.archive.crawler.frontier.BdbFro
·
2015-10-31 09:09
Heritrix
Heritrix
3.1.0 源码解析(十二)
接下来分析BdbFrontier类的CrawlURI next()方法,该方法是获取下一个待采集的CrawlURI对象 该方法是在BdbFrontier类的父类的父类AbstractFrontier里面 org.archive.crawler.frontier.BdbFrontier org.archive.c
·
2015-10-31 09:09
Heritrix
Heritrix
3.1.0 源码解析(十四)
CrawlURI caURI)、CrawlURI next() 、void finished(CrawlURI cURI)方法是,其实还有一些相关环境没有分析,其实我是有点疲倦 本文接下来分析在多线程环境中
Heritrix
3.1.0
·
2015-10-31 09:09
Heritrix
Heritrix
3.1.0 源码解析(十七)
我们接下来分析与与BdbFrontier对象void finished(CrawlURI cURI)方法相关的方法 /** * Note that the previously emitted CrawlURI has completed * its processing (for now). * * The CrawlURI may
·
2015-10-31 09:09
Heritrix
Heritrix
3.1.0 源码解析(十一)
上文分析了
Heritrix
3.1.0系统是怎么添加CrawlURI curi对象的,那么在系统初始化的时候,是怎么载入CrawlURI curi种子的呢?
·
2015-10-31 09:09
Heritrix
Heritrix
3.1.0 源码解析(十三)
接下来分析BdbFrontier类的void finished(CrawlURI curi) 方法,完成CrawlURI对象的扫尾工作 在BdbFrontier类的父类的父类AbstractFrontier里面 org.archive.crawler.frontier.BdbFrontier org.archive.crawler.frontier.
·
2015-10-31 09:09
Heritrix
Heritrix
3.1.0 源码解析(八)
本文接着分析存储CrawlURI curi的队列容器,最重要的是BdbWorkQueue类及BdbMultipleWorkQueues类 BdbWorkQueue类继承自抽象类WorkQueue,抽象类WorkQueue最重要的方法是 long enqueue(final WorkQueueFrontier frontier,CrawlURI curi) CrawlURI peek(fina
·
2015-10-31 09:09
Heritrix
Heritrix
3.1.0 源码解析(五)
我们从上文的CrawlController对象可以看到,爬虫任务是通过ToePool类建立线程ToeThread的线程池的 我们在了解采集线程池的相关类之前,先有必要了解一下CrawlController类,因为我们的爬虫操作指令最终是通过调用CrawlController对象的方法的 CrawlController类的成员和方法都是直接与采集任务相关的,好比控制中心 // Applica
·
2015-10-31 09:09
Heritrix
Heritrix
3.1.0 源码解析(十六)
我们接下来分析与与BdbFrontier对象CrawlURI next()方法相关的方法 /** * Return the next CrawlURI eligible to be processed (and presumably * visited/fetched) by a a worker thread. * * Relies
·
2015-10-31 09:09
Heritrix
Heritrix
3.1.0 源码解析(三)
如果从
heritrix
3.1.0系统的静态逻辑结构入手,往往看不到系统相关对象的交互作用;如果只从系统的对象动态结构 分析,则又看不到系统的逻辑轮廓 所以源码分析需要动静兼顾,使我们更容易理解它的逻辑与交互
·
2015-10-31 09:08
Heritrix
Heritrix
3.1.0 源码解析(二)
上文
Heritrix
3.1.0 源码解析(一)实际上是讲述
Heritrix
3.1.0在eclipse中的环境搭建,还属于对
Heritrix
3.1.0 源码解析的热身阶段,本文接着分析
Heritrix
·
2015-10-31 09:08
Heritrix
Heritrix
3.1.0 源码解析(九)
Heritrix
3.1.0系统里面Frontier组件管理链接队列,采用的是BDB数据库,利用BDB数据库来存储CrawlURI对象,首先我们来看
Heritrix
3.1.0是怎么实现BDB模块的 我们知道
·
2015-10-31 09:08
Heritrix
Heritrix
3.1.0 源码解析(四)
在对象之间相互通信时,首先应该了解对象的状态;最基本的入手方式就是 了解它的构造函数或者初始化方法以及执行相关方法后状态的变化,其次是相应方法的输入参数(发送消息) 当我们在后台建立一个爬行任务时,在
Heritrix
3.1.0
·
2015-10-31 09:08
Heritrix
【
Heritrix
基础教程之4】开始一个爬虫抓取的全流程代码分析
在创建一个job后,就要开始job的运行,运行的全流程如下: 1、在界面上启动job 2、index.jsp 查看上述页面对应的源代码 <a href='"+request.getContextPath()+"/console/action.jsp?action=start'>Start</a> 3、action.jsp
·
2015-10-31 08:46
Heritrix
【
Heritrix
基础教程之3】
Heritrix
的基本架构
Heritrix
可分为四大模块: 1、控制器CrawlController 2、待处理的uri列表 Frontier 3、线程池 ToeThread 4、各个步骤的处理器 (
·
2015-10-31 08:46
Heritrix
【
Heritrix
基础教程之1】在Eclipse中配置
Heritrix
一、新建项目并将
Heritrix
源码导入 1、下载
heritrix
-1.14.4-src.zip和
heritrix
-1.14.4.zip两个压缩包,并解压,以后分别简称SRC包和ZIP包; 2、
·
2015-10-31 08:46
Heritrix
利用Lucene与Nutch构建简单的全文搜索引擎
由于Lucene并不是一个可以直接运行的程序,且不具备爬虫和文档处理的功能,因此在这一部分利用到了
Heritrix
和HTMLParser这两个工具分别实现爬虫与HTML文档解析的功能。
·
2015-10-30 15:43
Lucene
Heritrix
3.1.0 源码解析(三十五)
本文接下来先分析CandidatesProcessor处理器,我们称之为候选处理器,该处理器的功能是对网页抽取的外链进行过滤,通过过滤的链接则添加到Frontier边界部件的BdbWorkQueue工作队列;CandidatesProcessor处理器对CrawlURI candidate对象的过滤功能是通过CandidateChain处理器链处理的,该处理器链包括两大处理器,分别为org.arc
·
2015-10-30 14:06
Heritrix
Heritrix
3.1.0 源码解析(三十四)
本文主要分析FetchFTP处理器,该处理器用于ftp文件的下载,该处理器的实现是通过封装commons-net-2.0.jar组件来实现ftp文件下载 在FetchFTP处理器里面定义了内部类SocketFactoryWithTimeout(SOCKET工厂),用于创建SOCKET /** * A {@link SocketFactory} much like {@link j
·
2015-10-30 14:06
Heritrix
Heritrix
3.1.0 源码解析(三十三)
本文要分析的是FetchHTTP处理器,该处理器实现CrawlURI curi对象URL的请求(OutputStream写入数据)并且返回InputStream FetchHTTP处理器有很多成员变量,均为设置远程请求的相关参数,本人只解释其中重要成员变量 /** * Whether or not to perform an on-the-fly digest hash of r
·
2015-10-30 14:05
Heritrix
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他