一、maven项目里pom添加jsoup依赖
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.10.2</version> </dependency>
以抓取CSDN主页的右侧导航栏为例
代码示例:
1 package com.oukele.csdn_demo; 2 3 import org.jsoup.Jsoup; 4 import org.jsoup.nodes.Document; 5 import org.jsoup.nodes.Element; 6 import org.jsoup.select.Elements; 7 8 import java.io.IOException; 9 10 public class CsdnCrawlDemo { 11 12 public static void main(String[] args) { 13 //目标地址 14 String url = "https://www.csdn.net/"; 15 try { 16 Document document = Jsoup 17 .connect(url) 18 .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") 19 .get(); 20 // 右侧导航栏 21 Elements nav_com = document.getElementsByClass("nav_com"); 22 Elements elements = nav_com.select("ul>li"); 23 for (Element element : elements) { 24 System.out.println("导航标题:"+element.text()+" 标题访问地址:"+element.select("a").attr("href")+" "); 25 //这里 我们可以 根据 得到的访问链接 再进行 爬取......... 26 } 27 } catch (IOException e) { 28 System.out.println("出现错误:"+e.getMessage()); 29 } 30 31 32 } 33 34 }
运行结果:
1 导航标题:推荐 标题对应的链接:/ 2 3 导航标题:最新文章 标题对应的链接:/nav/newarticles 4 5 导航标题:关注 标题对应的链接:/nav/watchers 6 7 导航标题:资讯 标题对应的链接:/nav/news 8 9 导航标题:人工智能 标题对应的链接:/nav/ai 10 11 导航标题:云计算/大数据 标题对应的链接:/nav/cloud 12 13 导航标题:区块链 标题对应的链接:https://blockchain.csdn.net 14 15 导航标题:数据库 标题对应的链接:/nav/db 16 17 导航标题:程序人生 标题对应的链接:/nav/career 18 19 导航标题:游戏开发 标题对应的链接:/nav/game 20 21 导航标题:研发管理 标题对应的链接:/nav/engineering 22 23 导航标题:前端 标题对应的链接:/nav/web 24 25 导航标题:移动开发 标题对应的链接:/nav/mobile 26 27 导航标题:物联网 标题对应的链接:/nav/iot 28 29 导航标题:运维 标题对应的链接:/nav/ops 30 31 导航标题:计算机基础 标题对应的链接:/nav/fund 32 33 导航标题:编程语言 标题对应的链接:/nav/lang 34 35 导航标题:架构 标题对应的链接:/nav/arch 36 37 导航标题:音视频开发 标题对应的链接:/nav/avi 38 39 导航标题:安全 标题对应的链接:/nav/sec 40 41 导航标题:其他 标题对应的链接:/nav/other