Jsoup爬取简单信息

1. 豆瓣图书最受关注

1.1 创建SpringBoot项目或者Maven项目

1.2 引入jsoup

        <dependency>
            <!-- jsoup HTML parser library @ https://jsoup.org/ -->
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.15.3</version>
        </dependency>

注意版本一定是1.15.3,1.15.4可能无法获取信息

1.3 爬取信息

先找到豆瓣图书网址
豆瓣

先找到整个布局的部分,list-col2,里面存储着相应的元素标签
在这里插入图片描述

所以document的select标签就是ul.list-col2 li,意思是选择ul里面标签list-col2,然后选择里面的li
li里面分成两个部分,包含cover和info,我这里取出info里面的信息
在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9GrSUwwo-1691985379249)(/images/pqtp-7.png)]

标题通过h4.title里面的a标签获取
作者直接通过p.author获取
里面的评分需要两层获取,先获取p标签,然后获取limian的span标签p.entry-star-small span.average-rating

public BaseResponse<String> famousDouBanBook(){
    
    
        String url = "https://book.douban.com/";
        Document document = null;
        try {
    
    
            document = Jsoup.connect(url).get();
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
        System.out.println(document);
        Elements elements = document.select("ul.list-col2 li");
        for (Element element : elements) {
    
    
            String title = element.select("h4.title a").text();
            String coverUrl = element.select("div.cover img").attr("src");
            String rate = element.select("p.entry-star-small span.average-rating").text();;
            String author = element.select("p.author").text();

            System.out.println("书名:" + title);
            System.out.println("封面:" + coverUrl);
            System.out.println("评分:" + rate);
            System.out.println("作者:" + author);
            System.out.println("------------------------");
        }
        return ResultUtils.success("ok");
    }

可以采用创建相关的实体类来存储信息。

声明:仅作为学习参考

猜你喜欢

转载自blog.csdn.net/qq_52843958/article/details/132273190