- 浏览: 144898 次
- 性别:
- 来自: 北京
-
最新评论
-
nwater:
楼主,我在使用gecco核心库开发时,出现下面的错误,请问这种 ...
gecco 1.1.0稳定版发布,易用的轻量化爬虫 -
xtuhcy:
Chen.H 写道结合reids的插件gecco-reids ...
java爬虫gecco监控来了,不再裸奔 -
Chen.H:
结合reids的插件gecco-reids reids=&g ...
java爬虫gecco监控来了,不再裸奔 -
xtuhcy:
gnomewarlock 写道这例子能跑? 少了个最主要的wr ...
maven打包deamon运行程序 -
gnomewarlock:
这例子能跑? 少了个最主要的wrapperMainClass
maven打包deamon运行程序
文章列表
gecco 1.1.0稳定版发布了。
1.1.0版本主要做了如下修改:
1.优化代理设置,运行时计算代理下载成功率,自动发现无效代理,支持运行时添加代理2.HttpClientDownloader支持类似12306网站非信任ssl证书3.JsonBean支持嵌套解析4.修复部分网站302无法跳转的bug5.优化debug日志输出
gecco 1.0.9 发布了。
1.0.9版本主要做了如下修改:
1、@Image注解增加图片自动下载到本地的方法@Image(download="d:/gecco/jd/img")2、GeccoEngine改为线程方式,通过start()支持非阻塞方式运行3、支持debug模式,GeccoEngine.debug(true)4、简化spring项目启动Gecco的方式,详细请查看:
gecco 1.0.8 发布了。
1.0.8版本主要做了如下修改:
GeccoEngine增加loop方法,支持不循环抓取。gecco默认将改为采用不循环抓取2.支持移动端的UserAgent,通过GeccoEngine.mobile(true)设置3.支持配置初始化地址,自动扫描classpath根目录下的starts.json文件4.HttpResponse增加释放raw的方法5.GeccoEngine增加close方法,爬取结束后可以释放downloader下载资源
gecco是一款易用的轻量化网络爬虫。十分的容易上手。
主要特征:
简单易用,使用jquery ...
java爬虫gecco的稳定性测试
最近对开源的java爬虫Gecco做了一个稳定性测试,测试环境:一台爬虫+web应用服务器,一台mongodb服务器。服务器配置很low,两台都是阿里云最低端的主机,1核+512内存。
单线程测试场景
爬虫采用单线程,测试时间3×24小时,测试期间系统无异常,jvm内存稳定。测试结果:
基本信息
Interval: 5000,
StartTime: "2016-03-22 14:47:40",
java爬虫gecco监控来了,不再裸奔
爬虫为什么要监控
gecco是一个十分简单易用的java开源爬虫框架,同时也一个款拥有很好扩展性的框架,目前已经有:
结合spring的插件gecco-spring
结合htmlunit的插件gecco-htmlunit
结合redis的插件gecco-redis
1.0.6Release
1、修改request的原始流raw被关闭的bug
2、将downloader关联到gecco上,@Gecco增加downloader和timeout选项
@Gecco(matchUrl="https://github.com/{user}/{project}", pipelines="consolePipeline", downloader="httpClientDownloader", t ...
加密技术入门——从对称加密到CA证书
几个基本概念
对称加密
对称加密是最传统的加密方式,简单说就是用一个密钥对原文加密,再用同样密钥对原文解密。对称加密的优点就是加密速度快,但是缺点也很明显,密钥的传 ...
tomcat类加载顺序:
Bootstrap classes of your JVM:jdk相关类
System class loader classes:tomcat相关类
/WEB-INF/classes of your web application:应用程序classes下相关类
/WEB-INF/lib/*.jar of your web application:应用程序lib下相关类
Common class loader classes :tomcat中的公共类tomcat\lib
tomcat类加载的双亲委派模型:
...
抽空进行了Gecco爬虫文档的撰写,目录如下:
Gecco是什么
1. 一分钟你就可以写一个简单爬虫
2. 软件总体结构
3. 从下载说起
4. 抽取页面内容
5. 业务逻辑处理
地址:https://xtuhcy.gitbooks.io/geccocrawler/content/index.html
Gecco爬虫已经开发有一个多月了,爬虫的大部分功能已经实现,是需要检验一下爬虫的时候了。
之所以开发Gecco这样的一个爬虫,也是我之前开发了不少类似的应用有关,这些应用都需要爬取其他网站的信息,并且结构化后加以利用。
比如之前开发过一个比价网站,将京东、苏宁、新蛋、易迅等电商的商品信息抓下来进行站内和站外的比价,如今这样的应用已经十分普及,相信大家都装过惠惠购物助手,就类似这样的;
之后又开发过一个折扣信息的聚合网站,将什么值得买之类的折扣信息发布平台的信息聚合起来,方便查找;
如今的网站和应用开发或 ...
最近在开发gecco的开源爬虫时混淆了正则表达的部分匹配和完全匹配的概念,记录一下。
java的正则表达式有个很容易混淆的概念,部分匹配和完全匹配:
在Matcher类中有matches、lookingAt和find都是匹配目标的方法,但容易混淆,整理它们的区别如下:
matches:整个匹配,只有整个字符序列完全匹配成功,才返回True,否则返回False。但如果前部分匹配成功,将移动下次匹配的位置。
lookingAt:部分匹配,总是从第一个字符进行匹配,匹配成功了不再继续匹配,匹配失败了,也不继续匹配。
find:部分匹配,从当前位置开始匹配,找到一个匹配的子串,将移动下次匹 ...
https://github.com/xtuhcy/gecco
主要特征
1、简单易用,使用jquery的css selector风格抽取元素
2、支持页面中的异步ajax请求
3、支持页面中的javascript变量抽取
4、利用Redis实现分布式抓取
5、支持下载时UserAgent随机选取
6、支持下载代理服务器随机选取
7、支持结合Spring开发业务逻辑
字符串匹配的KMP算法
http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html
字符串匹配是计算机的基本任务之一。
举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?
许多算法可以完成这个任务,
解决跨库数据一致性问题通常会采用jta/xa的事务方式,下面介绍一下利用atomikos在spring3.x+hibernate3.x下的配置方式:
一、事务能解决的问题
保持ACID,也就是原子性 ( Atomicity )、一致性 ( Consistency )、隔离性 ( Isolation ) 和持久性 ( Durabilily ),分布式环境下,或者说假如有多个数据库,如果保持acid呢?
二、分布式事务
分布式事务(Distributed Transaction)包括:
事务管理器(Transaction Manager),事务管理器承担着所有事务参与单元 ...
事务级别和能解决的问题
一、脏读
现象:事务1提交前,事务2也能读到最新的数据;
解决后:只有commit,其他事务查询查才能获得最新数据;
以下事务级别可以解决脏读的问题:READ-COMMITTED,REPEATABLE-READ,SERIALIZABLE
二、不可重复读(mysql的innodb引擎默认为该事务级别)
现象:事务1提交后,事务2就能读到最新数据,此时会造成事务2多次读同一行数据时不一致的可能
解决后:即使commit了,其他事务读到的还是旧数据
以下事务级别可以解决脏读的问题:REPEATABLE-READ,SERIALIZABLE
三、幻读 ...