Skip to content

Releases: zhegexiaohuozi/SeimiCrawler

V2.1.4

25 Apr 07:33
Compare
Choose a tag to compare
  • 支持扩展自定义SeimiDownloader 方便更灵活的定制自己的数据获取需求
    默认走系统下载器,针对特殊请求,可以自行指定自定义的下载器,如:
public class MyCoustomDownloader implements SeimiDownloader {
    @Override
    public Response process(Request request) throws Exception {
        Response seimiResponse = new Response();
        seimiResponse.setSeimiHttpType(SeimiHttpType.OK_HTTP3);
        seimiResponse.setRealUrl(request.getUrl());
        seimiResponse.setUrl(request.getUrl());
        seimiResponse.setRequest(request);
        seimiResponse.setMeta(request.getMeta());
        seimiResponse.setBodyType(BodyType.TEXT);
        String content = webGetDo(request);
        seimiResponse.setContent(content);
        return seimiResponse;
    }

    @Override
    public Response metaRefresh(String s) throws Exception {
        //看自己情况,可以不实现不处理
        return null;
    }

    @Override
    public int statusCode() {
        return 200;
    }

    @Override
    public void addCookies(String s, List<SeimiCookie> list) {
        //to do
    }
}

其中 webGetDo() 是自定义逻辑,这里没有列出来,仅作示意,你可以随意实现你想实现的逻辑。

Request next = Request.build(url, MyCrawler::parseDetail);
next.setDownloader(MyCoustomDownloader.class);
push(next);
  • 支持通过Jvm参数-Dseimi.crawler.thread-num=xx自定义每个Crawler的工作线程数,最小值为1

v2.1.3

08 Feb 03:11
Compare
Choose a tag to compare

v2.1.2

06 Dec 03:01
Compare
Choose a tag to compare
  • 升级部分依赖版本
  • 支持json request body,Request对象中支持设置 jsonBody发起json request请求
<dependency>
  <groupId>cn.wanghaomiao</groupId>
  <artifactId>SeimiCrawler</artifactId>
  <version>2.1.2</version>
</dependency>
  • spring boot demo 默认关闭Redis 队列演示,避免误会

v2.1

21 Jan 18:45
Compare
Choose a tag to compare
  • 升级依赖版本
  • Apache httpclient 重定向优化
  • 修复已知问题

v2.0

23 Jun 08:21
Compare
Choose a tag to compare
  • 完美支持SpringBoot,可以尽情的集成SpringBoot现有生态,demo参考

  • 回调函数支持方法引用,设置起来更自然

    push(Request.build(s.toString(),Basic::getTitle));

  • 非SpringBoot模式全局配置项通过SeimiConfig进行配置,包括 Redis集群信息,SeimiAgent信息等,SpringBoot模式则通过SpringBoot标准模式配置

常规模式:

SeimiConfig config = new SeimiConfig();
config.setSeimiAgentHost("127.0.0.1");
//config.redisSingleServer().setAddress("redis://127.0.0.1:6379");
Seimi s = new Seimi(config);
s.goRun("basic");

SpringBoot模式,在application.properties中配置

seimi.crawler.enabled=true
# 指定要发起start请求的crawler的name
seimi.crawler.names=basic,test

seimi.crawler.seimi-agent-host=xx
seimi.crawler.seimi-agent-port=xx

#开启分布式队列
seimi.crawler.enable-redisson-queue=true
#自定义bloomFilter预期插入次数,不设置用默认值 ()
#seimi.crawler.bloom-filter-expected-insertions=
#自定义bloomFilter预期的错误率,0.001为1000个允许有一个判断错误的。不设置用默认值(0.001)
#seimi.crawler.bloom-filter-false-probability=
  • 分布式队列改用Redisson实现,底层依旧为redis,去重引入BloomFilter以提高空间利用率,一个线上的BloomFilter调参模拟器地址

  • JDK要求 1.8+

  • JsoupXpath同步升级至基于Antlr4重构的2.0版本,带来更为强大的Xpath语法支持

v1.3.5

12 Aug 16:33
Compare
Choose a tag to compare

v1.3.4

10 Aug 13:30
Compare
Choose a tag to compare
  • 修复分布式队列DefaultRedisQueue中json反序列化useSeimiAgent永远为false的bug @Dreamerdream

v1.3.3

15 May 16:23
Compare
Choose a tag to compare
  • 修复异常次数超过最大重试次数后,无法进入异常处理器

  • 增加当异常请求被提交给异常处理器超过三次后,再不对其进行处理

v1.3.2

29 Mar 14:39
Compare
Choose a tag to compare
  • bug fix

v1.3.1

11 Jan 15:38
Compare
Choose a tag to compare
  • 中文参数在框架层强制统一进行utf8编码的urlEncode,最大程度减少乱码请求
  • Request请求在去重处理时,将区分范围扩大到所设定的请求参数