gecco爬虫框架获取到页面中文乱码问题

//看了gecco使用文档,没有找到,看了源码才发现的问题,希望能给刚学的人带来一点帮助


产生问题的原因在于,获取页面内容的格式是不一致.

例如:页面的编码格式是gb2312而代码获取内容的编码格式utf-8.由于格式不一致导致乱码.

有人会说,可以将utf-8编码在转成gb2312就可以了.事实上,并不是这样的.

@Configuration
@ComponentScan(basePackages = { "com.gfound.data", "com.geccocrawler.gecco.spring" })
public class GeccoConfig {
@Bean
public SpringGeccoEngine job1() {
return new SpringGeccoEngine() {
@Override
public void init() {
Date date = new Date();
String dateyear=  new SimpleDateFormat("yyyy").format(date);
List<HttpRequest> requests = Lists.newArrayList();

HttpRequest request6 = new HttpGetRequest(
"http://www.baidu.com");
request6.setCharset("utf-8");//这里设置获取页面数据的编码格式

requests.add(request6);

GeccoEngine.create().pipelineFactory(springPipelineFactory).classpath("com.gfound.data").start(
requests

).loop(false).start();
}
};
}


}
一个gecco爬虫框架,简单易用,使用jquery风格的选择器抽取元素 支持爬取规则的动态配置和加载 支持页面中的异步ajax请求 支持页面中的javascript变量抽取 利用Redis实现分布式抓取,参考gecco-redis 支持结合Spring开发业务逻辑,参考gecco-spring 支持htmlunit扩展,参考gecco-htmlunit 支持插件扩展机制 支持下载时UserAgent随机选取 支持下载代理服务器随机选取 Gecco是一款用java语言开发的轻量化的易用的网络爬虫,不同于Nutch这样的面向搜索引擎的通用爬虫Gecco是面向主题的爬虫。 通用爬虫一般关注三个主要的问题:下载、排序、索引。 主题爬虫一般关注的是:下载、内容抽取、灵活的业务逻辑处理。 Gecco的目标是提供一个完善的 » 二、一分钟你就可以写一个简单爬虫 示例代码 这里用抓取gecco这个项目的首页为例。我们希望得到项目的作者名称,项目名称,项目的star和fork数量,以及项目的介绍。如果你稍有java基础,会写jquery的css selector我相信下面的代码我不需要解释你也能轻松的看明白。 @Gecco(matc » 三、软件总体结构 基本构件介绍 GeccoEngine GeccoEngine爬虫引擎,每个爬虫引擎最好是一个独立进程,在分布式爬虫场景下,建议每台爬虫服务器(物理机或者虚机)运行一个GeccoEngine爬虫引擎包括主要Scheduler、Downloader、Spider、SpiderB » 四、GeccoEngine Gecco如何运行 Gecco的初始化和启动通过GeccoEngine完成,GeccoEngine主要负责初始化配置、开始请求的配置和启动爬虫运行,最基本的启动方法: GeccoEngine.create() .classpath("com.geccocrawler.ge » 五、从下载说起 一、下载引擎 爬虫最基本的能力就是发起http请求,下载网页,gecco默认采用httpclient4作为下载引擎。通过实现Downloader接口可以自定义自己的下载引擎,在启动GeccoEngine时需要设置自己的下载引擎。下面的代码不是使用默认的httpclient作为下载 » 六、抽取页面内容 gecco的内容抽取都是直接映射到java bean的属性中,利用注解可以方便的注入页面中的各种信息包括html页面内容、Ajax请求、javascript变量、request信息等 一、Html页面内容抽取 jsoup语法介绍 Selector选择器概述 tagname: » 七、业务逻辑处理 至此页面内容已经被gecco转换为一个普通的javabean。剩下的工作就是将javabean进一步清洗然后针对特定的业务逻辑进行持久化等处理。 一、实现pipeline接口 gecco采用管道过滤器模式灵活的实现业务逻辑处理,首先实现一个特定的管道过滤器,如: @Pipelin » 八、爬虫的监控 爬虫为什么要监控 gecco是一个十分简单易用的java开源爬虫框架,同时也一个款拥有很好扩展性的框架,目前已经有: 结合spring的插件gecco-spring 结合htmlunit的插件gecco-htmlunit 结合reids的插件gecco-reids 在开发爬虫时, » 九、稳定性测试 最近对开源的java爬虫Gecco做了一个稳定性测试,测试环境:一台爬虫+web应用服务器,一台mongodb服务器。服务器配置很low,两台都是阿里云最低端的主机,1核+512内存。 单线程测试场景 爬虫采用单线程,测试时间3×24小时,测试期间系统无异常,jvm内存稳定。测试 十、Gecco爬虫框架的线程和队列模型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值