【SpringBoot学习】22、Webmagic 爬虫爬取网络资源

【SpringBoot学习】22、Webmagic 爬虫爬取网络资源

1、采用 webmagic

采用采用 webmagic 作为爬虫工具,在线文档

2、集成 webmagic

添加依赖,然后就没了,就是这么简单

        <dependency>
            <groupId>us.codecraft</groupId>
            <artifactId>webmagic-core</artifactId>
            <version>0.7.3</version>
        </dependency>
        <dependency>
            <groupId>us.codecraft</groupId>
            <artifactId>webmagic-extension</artifactId>
            <version>0.7.3</version>
        </dependency>

3、爬取 CSDN 案例

写一个普通 main 方法,实现 PageProcessor 接口即可

import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.pipeline.ConsolePipeline;
import us.codecraft.webmagic.processor.PageProcessor;

import java.util.List;

/**
 * csdn 文章爬取
 *
 * @author Tellsea
 * @date 2021/10/31
 */
public class CsdnPageProcesser implements PageProcessor {

    private Site site = Site.me().setRetryTimes(3).setSleepTime(1000).setUseGzip(true);

    @Override
    public void process(Page page) {
        List<String> typeList = page.getHtml().xpath("//div[@class='article-item-box']/h4/a/span/text()").all();
        List<String> titleList = page.getHtml().xpath("//div[@class='article-item-box']/h4/a/text()").all();
        List<String> descList = page.getHtml().xpath("//div[@class='article-item-box']/p[@class='content']/text()").all();
        List<String> timeList = page.getHtml().xpath("//div[@class='article-item-box']/div[@class='info-box']/p/span[@class='date']/text()").all();
        List<String> readList = page.getHtml().xpath("//div[@class='article-item-box']/div[@class='info-box']/p/span[@class='read-num']/text()").all();
        List<String> linkList = page.getHtml().css("div.article-item-box h4 a", "href").all();
        System.out.println("----------------------------------------------- 爬虫开始");
        for (int i = 0; i < typeList.size(); i++) {
            System.out.println("------------------------ 第 " + (i + 1) + " 篇文章");
            System.out.println("类型:" + typeList.get(i).trim());
            System.out.println("标题:" + titleList.get(i).trim());
            System.out.println("描述:" + descList.get(i).trim());
            System.out.println("时间:" + timeList.get(i).trim());
            System.out.println("阅读:" + readList.get(i).trim());
            System.out.println("链接:" + linkList.get(i).trim());
        }
        System.out.println("----------------------------------------------- 爬虫结束");
    }

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

    public static void main(String[] args) {
        Spider.create(new CsdnPageProcesser())
                .addUrl("https://blog.csdn.net/qq_38762237")
                .addPipeline(new ConsolePipeline()).run();
    }
}

爬取效果图

在这里插入图片描述

技术分享区

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tellsea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值