Java爬虫爬取网页数据-基于Jsoup

@TOC

前言

本文主要介绍简单的使用Jsoup爬取网页数据
框架 SpringBoot + Jsoup
每一个步骤我都是进行独立封装起来,方便复用(重要的事说三遍)
每一个步骤我都是进行独立封装起来,方便复用(重要的事说三遍)
每一个步骤我都是进行独立封装起来,方便复用(重要的事说三遍)
这就是广告:技术交流群796794009SpringBoot技术交流群; --小吾

一.准备

创建一个SpringBoot项目引入Jsoup依赖

        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.13.1</version>
        </dependency>

二.代码(使用Jsoup的核心就两步)

第一步
通过Jsoupconnect(url).get();方法获取到当前页面信息
url为你要获取的网页地址
返回的是一个 Document

	public Document getDoc(String url){
        Document doc;
        try {
            doc = Jsoup.connect(url).get();
        } catch (IOException e) {
            log.error("出现异常:{}", e.getMessage());
            return null;
        }
        return doc;
    }

第二步
通过Document中的select方法获取标签(Elements)信息
特别备注1: 使用select方法获取到的是Elements集合,需要进行遍历才能获取到Element
特别备注2: link.attr("abs:src")中的abs:是指获取到绝对路径,现在很多页面中的src是不带域名的

    private Map<String,String> listUrl(Document doc){
        // Map<链接地址, 链接名称>
        Map<String,String> map = new HashMap<>(16);
        // 获取图片标签
        Elements links = doc.select("img[src]");
        for (Element link : links){
            System.out.println("名称 : " + link.text());
            System.out.println("链接 : " + link.attr("abs:src"));
            map.put(link.absUrl("abs:src"), link.text());
        }
        return map;
    }

三.效果

这里爬取的是我的博客上的一篇文章中的图片数据

爬虫项目地址

个人爬虫项目,仅供学习参考:https://github.com/xiao-wu-1024/demo_reptile
使用环境jdk1.8 、 MySQL8.0
备注:本项目仅提供4个接口
特别备注: 第4个接口不推荐大家尝试大型网站, 大型网站接口多获取时间过长
禁止使用本项目做一切违法行为,仅供学习参考
如图:
在这里插入图片描述

1 Like