一、maven项目里pom添加jsoup依赖
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.10.2</version>
</dependency>
以抓取CSDN主页的右侧导航栏为例
代码示例:
package com.oukele.csdn_demo; import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements; import java.io.IOException; public class CsdnCrawlDemo { public static void main(String[] args) {
//目标地址
String url = "https://www.csdn.net/";
try {
Document document = Jsoup
.connect(url)
.header("user-agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36")
.get();
// 右侧导航栏
Elements nav_com = document.getElementsByClass("nav_com");
Elements elements = nav_com.select("ul>li");
for (Element element : elements) {
System.out.println("导航标题:"+element.text()+"\t标题访问地址:"+element.select("a").attr("href")+"\r\n");
//这里 我们可以 根据 得到的访问链接 再进行 爬取.........
}
} catch (IOException e) {
System.out.println("出现错误:"+e.getMessage());
} } }
运行结果:
导航标题:推荐 标题对应的链接:/ 导航标题:最新文章 标题对应的链接:/nav/newarticles 导航标题:关注 标题对应的链接:/nav/watchers 导航标题:资讯 标题对应的链接:/nav/news 导航标题:人工智能 标题对应的链接:/nav/ai 导航标题:云计算/大数据 标题对应的链接:/nav/cloud 导航标题:区块链 标题对应的链接:https://blockchain.csdn.net 导航标题:数据库 标题对应的链接:/nav/db 导航标题:程序人生 标题对应的链接:/nav/career 导航标题:游戏开发 标题对应的链接:/nav/game 导航标题:研发管理 标题对应的链接:/nav/engineering 导航标题:前端 标题对应的链接:/nav/web 导航标题:移动开发 标题对应的链接:/nav/mobile 导航标题:物联网 标题对应的链接:/nav/iot 导航标题:运维 标题对应的链接:/nav/ops 导航标题:计算机基础 标题对应的链接:/nav/fund 导航标题:编程语言 标题对应的链接:/nav/lang 导航标题:架构 标题对应的链接:/nav/arch 导航标题:音视频开发 标题对应的链接:/nav/avi 导航标题:安全 标题对应的链接:/nav/sec 导航标题:其他 标题对应的链接:/nav/other