简单介绍webmagic的使用

一、引入webmagic包

    <dependency>
      <groupId>us.codecraft</groupId>
      <artifactId>webmagic-core</artifactId>
      <version>${webmagic.core.version}</version>
      <exclusions>
        <exclusion>
          <artifactId>slf4j-api</artifactId>
          <groupId>org.slf4j</groupId>
        </exclusion>
      </exclusions>
    </dependency>

二、启动爬虫

        Request request = new Request();
        request.setMethod("GET");
        request.setUrl("http://***");
        request.addHeader("client_signature", content);
        Spider.create(new MPageProcessor())
                .addRequest(request)
                .addPipeline(new MPipeline(start))
                .thread(1)
                .start();

三、PageProcessor

当然还有更多html内容的分析,看其它文章

public class MPageProcessor implements PageProcessor {
    private  Site site = Site.me().setSleepTime(3000).setTimeOut(120000);
    @Override
    public void process(Page page) {
        String text = page.getRawText();
//        System.out.println(text);
        JSONObject result = JSONUtil.parseObj(text);
        page.putField("data", result.getJSONObject("data"));
    }

    @Override
    public Site getSite() {
        return site;
    }
}

四、Pipeline

public class MPipeline implements Pipeline {

    private Date start;
    public MPipeline(Date start){
        this.start = start;
    }

    @Override
    public void process(ResultItems resultItems, Task task) {
        JSONObject data = resultItems.get("data");
        int total = data.getJSONObject("queryBean").getInt("total");
        System.out.println(total);
        Date end = new Date();
        System.out.println(DateUtil.format(end, "yyyy-MM-dd HH:mm:ss.SSSSSS"));
        System.out.println("总耗时:"+DateUtil.formatBetween(start, end, BetweenFormatter.Level.MILLISECOND));
    }
}
相关推荐
xlsw_2 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
神仙别闹3 小时前
基于java的改良版超级玛丽小游戏
java
远游客07134 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭4 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
暮湫4 小时前
泛型(2)
java
超爱吃士力架4 小时前
邀请逻辑
java·linux·后端
南宫生4 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
转码的小石4 小时前
12/21java基础
java
李小白664 小时前
Spring MVC(上)
java·spring·mvc
GoodStudyAndDayDayUp5 小时前
IDEA能够从mapper跳转到xml的插件
xml·java·intellij-idea