zoukankan      html  css  js  c++  java
  • 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()+"	标题访问地址:"+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
  • 相关阅读:
    解决bash: less: command not found
    IDEA-相关插件使用
    如何理解多租户架构?
    mybatis自动生成model、dao及对应的mapper.xml文件
    IDEA设置提示生成序列化ID
    [DUBBO] qos-server can not bind localhost:22222错误解决
    @NotNull,@NotEmpty,@NotBlank区别
    (三)IDEA使用,功能面板
    PHP实现自己活了多少岁
    使用PHP函数输出前一天的时间和后一天的时间
  • 原文地址:https://www.cnblogs.com/nongzihong/p/10448563.html
Copyright © 2011-2022 走看看