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
示例源码:https://github.com/oukele/Java-Crawl