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里面的信息
标题通过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");
}
可以采用创建相关的实体类来存储信息。