天天看點

12行代碼擷取CSDN部落格标題、釋出時間、閱讀量

1. 場景

CSDN統計資料不全,我個人是想要每篇文章每天的閱讀量的,然後可以繪制每篇文章通路曲線圖,自己慢慢研究分析。

是以寫個爬蟲,沒想到這麼簡單,12行代碼就搞定了,CSDN用心良苦啊!

2. 效果

先分析下我個人部落格,爬取結果如下,至于存入資料庫及圖形化展示,後續準備弄個小項目,同時內建下其他部落格平台自動擷取資料的功能。

釋出時間:2020-02-20 07:36:05 ---- 閱讀量:164    ---- 标題:原創 SpringBoot之路系列文章--(更新至第10篇)

釋出時間:2020-01-22 18:05:35 ---- 閱讀量:441    ---- 标題:原創 Spring之路系列文章--(已完結,共50篇)

釋出時間:2019-12-30 22:41:39 ---- 閱讀量:245    ---- 标題:原創 Java Web開發入門系列教程--(已完結,共34篇)

釋出時間:2019-11-11 22:38:19 ---- 閱讀量:156    ---- 标題:原創 程式員數學系列--(更新至第29篇)

釋出時間:2019-10-17 21:23:17 ---- 閱讀量:568    ---- 标題:原創 C語言資料結構系列--(更新至第16篇)

釋出時間:2019-10-08 20:51:01 ---- 閱讀量:154    ---- 标題:原創 毛哥的快樂生活系列--(更新至第30篇)

釋出時間:2019-09-22 21:01:31 ---- 閱讀量:2116   ---- 标題:原創 Python語言入門系列--(已完結,共29篇)

釋出時間:2020-03-06 15:45:44 ---- 閱讀量:8      ---- 标題:原創 使用MyCat單庫分表實戰詳解

釋出時間:2020-03-06 11:32:26 ---- 閱讀量:34     ---- 标題:原創 使用MyCat分庫實戰詳解

釋出時間:2020-03-06 10:00:39 ---- 閱讀量:103    ---- 标題:原創 RabbitMQ安裝過程詳解

OK,試下CSDN部落格排行榜第一的資料,也沒問題

釋出時間:2019-11-16 22:34:32 ---- 閱讀量:2005   ---- 标題:原創 歡迎關注我的微信公衆号"濤歌依舊",感謝大家支援和鼓勵!

釋出時間:2020-03-06 22:32:59 ---- 閱讀量:23     ---- 标題:原創 異步log"丢失"之謎

釋出時間:2020-03-06 22:31:43 ---- 閱讀量:267    ---- 标題:原創 log丢失之謎

釋出時間:2020-03-06 22:29:16 ---- 閱讀量:15     ---- 标題:原創 如何檢視tcp連接配接的建立時間?

釋出時間:2020-02-24 22:57:04 ---- 閱讀量:300    ---- 标題:原創 筆試面試之C語言

釋出時間:2020-02-24 22:56:36 ---- 閱讀量:443    ---- 标題:原創 金三銀四求職季

釋出時間:2020-02-24 22:56:12 ---- 閱讀量:131    ---- 标題:原創 拳不離手, 曲不離口---26個字母和48個音标的發音練習

釋出時間:2020-02-24 22:55:44 ---- 閱讀量:79     ---- 标題:原創 “暗淡藍點”三十年

釋出時間:2020-02-15 10:34:03 ---- 閱讀量:408    ---- 标題:原創 配音王者榮耀遊戲宣傳片

釋出時間:2020-02-15 10:31:40 ---- 閱讀量:163    ---- 标題:原創 配音提升工作效率的方法

3. 速度

因為我隻是弄着玩,不考慮速度問題,我自己300多篇部落格幾秒完事了。如果需要提高速度的話,可以開個線程池。

爬取資料之前注意不要出于商業用途,也不要爬取人家的商業資料。像我就隻分析下自己的部落格資料,問題不大。

4. 代碼

使用的Jsoup,因為這個庫足夠簡單,後續再研究下其他的庫。

先導入maven依賴

<dependency>
  <!-- jsoup HTML parser library @ https://jsoup.org/ -->
  <groupId>org.jsoup</groupId>
  <artifactId>jsoup</artifactId>
  <version>1.13.1</version>
</dependency>
      

然後代碼如下,非常簡單,我就不詳解了。老鐵們使用的時候将

https://studyingpanda.blog.csdn.net

替換成你自己的部落格首頁位址即可。

另外有用代碼确實隻有12行,沒有誇大哈。

package org.maoge.myspace.utils;

import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

/**
* Jsonup工具類
*/
public class JsoupUtil {
   public static void main(String[] args) throws IOException {
    getDataFromCsdn();
   }

   /**
    * 擷取CSDN部落格通路資訊
    */
   public static void getDataFromCsdn() throws IOException {
    int i = 1;//頁碼
    while (true) {
        Document doc = Jsoup.connect("https://studyingpanda.blog.csdn.net/article/list/" + i).get(); // 通過位址加載html文檔
        Elements articleBoxs = doc.body().select(".article-item-box"); // 擷取該頁文章清單
        if (articleBoxs.size() == 0) {// 該頁沒有文章時結束
            break;
        }
        for (Element box : articleBoxs) {//周遊所有文章,并通過選擇器擷取相關元素資訊,然後輸出資訊
            System.out.println(String.format("釋出時間:%s ---- 閱讀量:%-6s ---- 标題:%s", box.select(".date").first().text(),
                    box.select(".num").first().text(), box.select("h4").first().text()));
        }
        i++;
    }
   }
}