- 博客(29)
- 资源 (39)
- 收藏
- 关注
转载 Heritrix1.14源码分析(14)各种问题总结
开博客以及建立Heritrix 群有一段时间了(这里谢谢大家的关注),这篇博客将整理这段时间所遇到的问题.同时由于自己从今年5月份开始就不怎么接触Heritrix,很多东西开始遗忘(不过里面思想没忘),同时目前的工作也没有必要接触Heritrix,所以不可能向之前写博客那样从源码的角度去考虑了.这里就起个抛砖引玉的作用吧,希望能有点用.这篇博客会不断更新,如有其他问题,请留言......
2012-11-25 20:19:58 659 1
转载 Heritrix1.14源码分析(13) 如何让Heritrix不间断的抓取
近段时间在搞定Lucene的一些问题,所以Heritrix源码分析暂时告一段落。今天下午在群里有同学提到了Heritrix异常终止的问题以及让Heritrix不停的抓取(就是抓完一遍后载入种子继续抓取,目前他是写个定时器,定时检查Heritrix是否停止,如果停止了则重新初始化Heritrix,让Heritrix重新抓取,但这个方法就不可避免的会导致抓取重复URl,除非从recover.gz导入)
2012-11-25 20:19:26 823
转载 Heritrix1.14源码分析(12) Heritrix的控制中心(大脑)CrawlController
CrawlController的确是Heritrix的大脑,在Heritrix中拥有无上的权利!可以控制Heritrix的启动、暂停、停止,也定时进行数据统计、数据汇报和文件管理。同时CrawlController也基本上贯穿整个Heritrix代码,和CrawlURI一样。同时CrawlController纯代码页进2000行,下面就先介绍里面的属性和主要方法,同时对一些灵活用法也加以介绍:
2012-11-25 20:18:51 947
转载 Heritrix1.14源码分析(11) Heritrix中的URL--CandidateURI和CrawlURI以及如何增加自己的属性
Url是爬虫的核心,因为爬虫就是依赖URL一层一层的抓取下去,最后完成整个抓取。Heritrix中的URL比较特殊,有以下继承关系(由于不对继承关系作介绍,所以这里就不画图了): 1)org.archive.crawler.datamodel.CrawlURI——>CandidateURI 2)org.archive.net.UURI——>org
2012-11-25 20:17:02 679
转载 Heritrix1.14源码分析(10) Heritrix中的Http Status Code(Http状态码)
以前在做Web开发的时候就接触过一些HttpStatus Code,比如404,500.后来接触Heritrix之后才知道HttpStatus Code竟然有如此之多。不一样的HttpStatus Code就代表不一样的Http状态,简单的如成功、失败、重定向等。Heritrix自己也根据自己的需求增加了一些,同时由于Heritrix通过HttpClient去获取网络资源,其中一部分HttpSta
2012-11-25 20:15:59 762
转载 Heritrix1.14源码分析(9) Heritrix的二次抓取以及如何让Heritrix抓取你不想抓取的URL
前面说过Heritrix可以在某个抓取基础上(这里假设为A)继续抓取,因为Heritrix对每一个URL都会有相应的日志处理,同时还有checkpoint(备份中心)。所以只要通过A上的日志就可以完全按照该基础A继续抓取,不会重复抓取任何A抓过的任何东西,也会继续抓取A没有抓过的URL。做到这个有两种方法,一种是针对Web启动的,还有一种是针对我上次写的不通过Web启动的方式(启动方式见博客:He
2012-11-25 20:15:14 722
转载 Heritrix1.14源码分析(8) Heritrix8个处理器(Processor)介绍
Heritrix采用多线程去抓取数据,每次运行基本都要经过以下8个处理器处理(种子URL、先决条件URL除外),如此形成一整个流程。下面就大概介绍下每个处理器的作用以及大概处理的步骤。以后分析源码的时候再细节分析...... 8个处理器都继承org.archive.crawler.framework.Processor类,然后每个处理器都有自己的子类实现。同时相近处理器用or
2012-11-25 20:14:19 616
转载 Heritrix1.14源码分析(7) Heritrix的文件结构分析
每通过Heritrix运行一次抓取后,发现在该Job目录下就会有很多文件。这里说明下每个文件的作用,同时更主要介绍它的日志文件,因为我们可以通过日志文件发现Heritrix的抓取情况。首先贴个图: 以上就是Heritrix完成的文件结构,现在一一说明 序号文件名说明1order.xmlHeritrix
2012-11-25 20:13:29 610
转载 Heritrix1.14源码分析(6) Heritrix总体介绍
网上关于Heritrix的基本介绍有很多,这里就不再重复。我这里主要介绍下它的优缺点。然后我会介绍它的运作流程以及我会从流程中各个点结合源码来分别介绍.... Heritrix整体让人感觉有些复杂和繁琐,一个爬虫写成这样也真是成仙了。接触Heritrix有1年半了,大概花了2个月的时间(每天看代码时间8小时以上)将它的代码看完。这1年半也接触过Lucene和Hadoop,也兴致勃
2012-11-25 20:12:19 680
转载 Heritrix1.14源码分析(5) 如何让Heritrix在Ecplise等IDE下编程启动
在Heritrix注释里说Heritrix有三种启动方式,但我感觉只有两种:一种是通过tomcat或者JBOSS或者Jetty等Web容器,还有一种自然就是不通过Web直接编程运行。由于第二种方式更适合调试、研究代码,所以这里就介绍下它的编程启动方式吧....这里贴上示例代码以及注释: Java代码 import java.io.File; im
2012-11-25 20:11:42 1210
转载 Heritrix1.14源码分析(4)各个类说明
Heritrix的类的确很繁琐,往往继承了一层又一层,最多的继承好像有7层。下面就一个包一个包的说明每个类的作用,由于里面Heritrix组件分明,很多组件没用到的同时该组件的类我也没怎么接触,所以这里会忽略一部分,如果有知道的请补充,谢谢!如果对包还有不熟悉的,可以查看我前面的文章,这里也给出链接http://guoyunsky.iteye.com/admin/blogs/613249
2012-11-25 20:11:00 976
转载 Heritrix1.14源码分析(3) 修改配置文件order.xml加快你的抓取速度
Heritrix的order.xml分了很多组件,可以灵活的配置各个抓取参数。但很多人都关心如何使得抓取更快更久更多,这里首先从Heritrix自身着手吧,修改order.xml的一些参数其实也可以达到这一目的. 下面就列出各个参数、说明和理想值 序号配置名理想值说明100最大下
2012-11-25 20:09:32 720
转载 Heritrix1.14源码分析(2) 配置文件order.xml介绍
order.xml是整个Heritrix的核心,里面的每个一个配置都关系到Heritrix的运行情况,没读源码之前我只能从有限的渠道去获知这些配置的运用.读完之后才知道Heritrix竟然有如此灵活的运用,如可以控制抓取速度,可以优化电脑性能,可以在某一次的抓取上继续抓取.当然整个order.xml里我也没有全部掌握,只知道大部分配置的作用,希望大家指点改正以及补充,谢谢!
2012-11-25 20:08:48 938
转载 Heritrix1.14源码分析(1) 包介绍
之前说过要分享下我的爬虫经验,但一直找不到突破口,现在才感觉写点东西真的很难,所以大家真的要感谢那些无私的前辈们,在网上留下的一篇篇可以指点迷津的文章。 想了很久,还是先从Heritrix的包开始说起,然后再说类,最后讲下如何加工Heritrix,也就是将其打造成自己想要的爬虫,这里补充下,我用的版本是1.14.3. 同时欢迎加入我建的Heritrix爬虫群一起讨论学习: 1044
2012-11-25 20:07:37 778
转载 在Eclipse中搭建Heritrix 3.1
网上已经有几篇Heritrix 1.14版本的Eclipse搭建的文章,说的比较详细。本人下载了Heritrix 3.1,该版本相对Heritrix 1.14版本变化已经较大,在研究Heritrix零星的几个文档以后终于把环境搭建成功了,并把过程记录下来,希望对大家有所帮助。 Heritrix 3.1需要jdk1.6或以上版本。本人用的Eclipse是3.7 JEE版本(非必须条件)
2012-11-25 17:00:48 1321 2
转载 Heritrix3.0 载入种子的四种方式
Heritrix3.0新特性一大亮点就是,相比以前版本载入种子更灵活(甚至你可以动态载入种子),同时可以载入N个种子.以前版本载入种子是全部加载到内存,而一旦种子过多,那容易导致内存溢出.而新版本会分批次写入硬盘(通过调度器写入).所以避免了这个问题.下面就说一下Heritrix3.0载入种子的四种方式,分别是:直接载入,通过seeds.txt载入,通过ActionDirectory动态载
2012-11-25 16:24:17 842
转载 Heritrix3.0 CrawlJob控制台界面
我觉得Heritrix很直观的一点就是有控制台,但以前我忽略了这个功能,直接代码启动Heritrix,然后放在Tomcat里.后期才慢慢发现一个UI界面的价值.可以很方便的获知抓取情况,甚至完全在千里之外控制它的抓取.其实慢慢的发现很多开源框架都会有一个UI界面.我觉得这也是大势所趋.但在界面上Heritrix3.0也改动很大,以前采用JSP,所以需要Servlet容器.而Heritrix3.0则
2012-11-25 16:11:39 737
原创 Heritrix3.0 的安装,使用
1、下载heritrix3.0或heritrix3.1,解压。运行cmd,进入到bin目录下(如笔者的目录:cd D:\heritrix-3.1.0\bin)。运行命令:heritrix -a admin:admin ,这里冒号前面admin是用户名,后面是密码,这样将会在另一个新建的窗口中运行heritrix程序。在浏览器地址栏输入https://localhost:8443,注意这
2012-11-25 15:59:51 1411
转载 周鸿祎:需格外注意的五点用户体验
技术人员出身的产品经理非常有潜力,因为他懂技术,跟技术人员能更好的挑选技术方案。但我看到很多技术人员在做产品中犯的一个共同错误,太想要把自己的技术展现给用户,把先进的技术概念给用户。这就是忘了从用户角度出发,用户到今天,特别是体验时代,什么叫体验时代?在电脑还是即刻时代的时候,电脑越复杂越好,能够输入复杂的指令,但是当一个产业,比如今天苹果都成了街机,电脑已经成了标配情况下,电脑从专家时代
2012-11-25 10:29:08 846
原创 修改类不用重启Tomcat加载整个项目的实现方法
目前在做一个网站项目,使用MyEclipse+Tomcat,每次修改项目源代码时,都需要重启tomcat、重新导出项目到webapps文件夹或者重新部署,太麻烦。于是研究了一下tomcat如何设置成热启动,即修改源代码时不需要重启tomcat服务器。方法如下:第一步: Tomcat安装目录下,修改 conf/server.xml 中的 Host 配置,设置其reloa
2012-11-10 14:02:21 2131
原创 spring 多文件上传
/** * 招标多文件上传 * @author zhanglong * @param req * @param bidorg * 招标机构编号 * @param type * 文档类别 * @param fName *
2012-11-10 13:42:22 569
转载 spring MVC拦截器
一、拦截器的配置 1、传统的配置 Xml代码 bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" > property name="interceptors">
2012-11-10 13:36:02 766
转载 spring mvc 异常统一处理方式
springMVC提供的异常处理主要有两种方式,一种是直接实现自己的HandlerExceptionResolver,另一种是使用注解的方式实现一个专门用于处理异常的Controller——ExceptionHandler。 1、实现自己的HandlerExceptionResolver,HandlerExceptionResolver是一个接口,springMVC本身已经对其有了
2012-11-10 13:22:03 868
转载 五大方法减少跨站请求伪造(CSRF)攻击
你公司网络上的Web应用程序是否容易遭受跨站请求伪造攻击呢?这是一个值得讨论的问题,因为一次成功的CSRF攻击的后果往往是破坏性的,会花费公司的大量金钱,甚至导致机密信息丢失。 什么是CSRF(跨站请求伪造)? CSRF攻击通过使应用程序相信导致此活动的请求来自应用程序的一个可信用户,从而诱使应用程序执行一种活动(如转移金融资产、改变账户口令等)。用户可以是公司的一位雇员,企业
2012-11-10 12:12:35 1248
转载 动易安全开发手册
目录一、 输入验证 31. 什么是输入 32. 输入验证的必要性 33. 输入验证技术 33.1 主要防御方式 33.2 辅助防御方式 5二、 输出编码 81. 输出的种类 82. 输出编码的必要性 83. 输出编码
2012-11-10 10:49:30 1611
转载 struts2框架安全缺陷
摘要:本文介绍了java开发流行框架struts2以及webwork的一些安全缺陷,并举例说明框架本身以及开发人员使用框架时,所产生的种种安全问题,以及作者挖掘框架安全漏洞的一些心得体会。推荐以下人群阅读:了解java开发了解框架开发了解web application安全“网络安全爱好者”正文:当前java开发网站,通常不会是纯JSP
2012-11-09 21:00:59 1025
转载 解析如何防止XSS跨站脚本攻击
这些规则适用于所有不同类别的XSS跨站脚本攻击,可以通过在服务端执行适当的解码来定位映射的XSS以及存储的XSS,由于XSS也存在很多特殊情况,因此强烈推荐使用解码库。另外,基于XSS的DOM也可以通过将这些规则运用在客户端的不可信数据上来定位。不可信数据不可信数据通常是来自HTTP请求的数据,以URL参数、表单字段、标头或者Cookie的形式。不过从安全角度来看,来自数据库、网络
2012-11-08 17:05:42 1377 1
原创 位运算
位运算应用口诀 清零取反要用与,某位置一可用或若要取反和交换,轻轻松松用异或移位运算要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 " 3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 ">>>"运算符,右边的位被挤掉,对于左边移出的空位一
2012-11-07 23:36:51 697
转载 showModalDialog
What?模态对话框失效了? 上个礼拜修改测试一个后台管理项目,在测试与各个浏览器兼容性的时候,发现在chrome浏览器下showModalDialog方法显示的并不是模态对话框,就像新打开一个页面一样,父窗口仍然可以随意获取焦点,并可以打开多个窗体,而且返回值returnValue也无法返回,一直是undefined。这么多问题很令人头疼,下面就各个主流最新版的浏览器进行了一下测试。
2012-11-04 19:34:13 866
ssd3 practical quiz 10
2011-05-07
ssd3 practical quiz 8
2011-05-07
ssd3 practical quiz 7
2011-05-07
ssd3 practical quiz 6
2011-05-07
ssd3 practical quiz 5
2011-05-07
ssd3 practical quiz 3
2011-05-07
ssd3 practical quiz 2
2011-05-07
ssd3 practical quiz 1
2011-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人