• Java使用Jsoup之爬取博客数据应用实例


    导入Maven依赖

    <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
    
    
        <dependency>
    
    
            <groupId>org.jsoup</groupId>
    
    
            <artifactId>jsoup</artifactId>
    
    
            <version>1.11.3</version>
    
    
        </dependency>

    选择你要爬取网站(这里我以爬取自己的博客文章为例)

    通过浏览器进入这个网址

    我的博客

    使用浏览器调试工具(后面会说到这个目的)

    编写对应的Java的代码

    package cn.test;
    
    
    import org.jsoup.Connection;
    
    
    import org.jsoup.Jsoup;
    
    
    import org.jsoup.nodes.Document;
    
    
    import org.jsoup.nodes.Element;
    
    
    import org.jsoup.select.Elements;
    
    
    import java.io.IOException;
    
    
    import java.util.ArrayList;
    
    
    import java.util.List;
    
    
    
    
    
    /**
    
    
     * A simple example, used on the jsoup website.
    
    
     */
    
    
    public class BlogJsoup {
    
    
        /**
    
    
         * 获取博客最近十篇文章
    
    
         * @param args
    
    
         * @throws IOException
    
    
         */
    
    
        public static void main(String[] args) throws IOException {
    
    
            
    
    
            Connection connection = Jsoup.connect("https://www.cnblogs.com/youcong/");
    
    
            
    
    
            connection.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36");
    
    
    
    
    
            try {
    
    
               
    
    
                Document document = connection.timeout(100000).get();
    
    
    
    
    
                //包含所有列表的文章
    
    
                Elements elements = document.getElementsByClass("postTitle2");
    
    
         
    
    
                for (Element element : elements) {
    
    
             
    
    
                    String path = element.attr("href");
    
    
                    String text = element.text();
    
    
                    String msg = text+" "+path;
    
    
                    System.out.println(msg);
    
    
    
    
    
                }
    
    
                
    
    
    
    
    
            } catch (IOException e) {
    
    
                
    
    
                e.printStackTrace();
    
    
            }
    
    
                 
    
    
    
    
    
       
    
    
    }
    
    
        
    
    
    }

    上面的代码,用流程可以梳理为如下:

    连接爬取的网站->设置浏览器请求头(防止因浏览器的限制导致爬取数据失败)->获取整个HTML(实际就是一个html)->选择HTML中的某一个元素(如类选择器postTitle2,如果不指定对应的元素选择器,那么直接爬取的就是整个HTML)->爬取数据并输出

    输出结果如图:

  • 相关阅读:
    linux 下监控进程流量情况命令 NetHogs
    tensorflow学习官网地址
    zabbix 报表
    zabbix性能优化等
    awk输出匹配内容的所在列数
    zabbix api支持的数据类型
    ss命令能识别的TCP状态的关键字
    数据分析初识、Anaconda安装、Juypyter notebook配置与快捷键
    Flask框架(五)之SQLAlchemy
    Flask框架(四)之信号
  • 原文地址:https://www.cnblogs.com/youcong/p/11111250.html
Copyright © 2020-2023  润新知