Java使用Jsoup之爬取博客数据应用实例

导入Maven依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18


<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->


<dependency>


<groupId>org.jsoup</groupId>


<artifactId>jsoup</artifactId>


<version>1.11.3</version>


</dependency>

选择你要爬取网站(这里我以爬取自己的博客文章为例)

通过浏览器进入这个网址

我的博客

使用浏览器调试工具(后面会说到这个目的)

编写对应的Java的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156


package cn.test;


import org.jsoup.Connection;


import org.jsoup.Jsoup;


import org.jsoup.nodes.Document;


import org.jsoup.nodes.Element;


import org.jsoup.select.Elements;


import java.io.IOException;


import java.util.ArrayList;


import java.util.List;





/**


* A simple example, used on the jsoup website.


*/


public class BlogJsoup {


/**


* 获取博客最近十篇文章


* @param args


* @throws IOException


*/


public static void main(String[] args) throws IOException {





Connection connection = Jsoup.connect("https://www.cnblogs.com/youcong/");





connection.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36");





try {





Document document = connection.timeout(100000).get();





//包含所有列表的文章


Elements elements = document.getElementsByClass("postTitle2");





for (Element element : elements) {





String path = element.attr("href");


String text = element.text();


String msg = text+" "+path;


System.out.println(msg);





}








} catch (IOException e) {





e.printStackTrace();


}











}





}

上面的代码,用流程可以梳理为如下:

连接爬取的网站->设置浏览器请求头(防止因浏览器的限制导致爬取数据失败)->获取整个HTML(实际就是一个html)->选择HTML中的某一个元素(如类选择器postTitle2,如果不指定对应的元素选择器,那么直接爬取的就是整个HTML)->爬取数据并输出

输出结果如图:

文章目录
  1. 1. 导入Maven依赖
  2. 2. 选择你要爬取网站(这里我以爬取自己的博客文章为例)
    1. 2.0.1. 通过浏览器进入这个网址
    2. 2.0.2. 使用浏览器调试工具(后面会说到这个目的)
  3. 2.1. 编写对应的Java的代码