Java程序中使用 Jsoup 爬虫( 简单示例 )

一、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()+"\t标题访问地址:"+element.select("a").attr("href")+"\r\n");
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
posted @ 2019-02-28 10:09  随★风  阅读(1583)  评论(0编辑  收藏  举报