Jsoup爬取简单信息

1. 豆瓣图书最受关注

1.1 创建SpringBoot项目或者Maven项目

1.2 引入jsoup

        <dependency>
            
            <groupId>org.jsoupgroupId>
            <artifactId>jsoupartifactId>
            <version>1.15.3version>
        dependency>

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

1.3 爬取信息

先找到豆瓣图书网址
豆瓣

先找到整个布局的部分,list-col2,里面存储着相应的元素标签
Jsoup爬取简单信息_第1张图片

所以document的select标签就是ul.list-col2 li,意思是选择ul里面标签list-col2,然后选择里面的li
li里面分成两个部分,包含cover和info,我这里取出info里面的信息
Jsoup爬取简单信息_第2张图片

Jsoup爬取简单信息_第3张图片

标题通过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");
    }

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

声明:仅作为学习参考

你可能感兴趣的:(爬虫,java,爬虫)