导入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)->爬取数据并输出
输出结果如图:
