12行代碼獲取CSDN博客標題、發佈時間、閱讀量

場景

CSDN統計數據不全,我個人是想要每篇文章每天的閱讀量的,然後可以繪製每篇文章訪問曲線圖,自己慢慢研究分析。

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

效果

先分析下我個人博客,爬取結果如下,至於存入數據庫及圖形化展示,後續準備弄個小項目,同時集成下其他博客平臺自動獲取數據的功能。

發佈時間: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    ---- 標題:原創 配音提升工作效率的方法

速度

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

爬取數據之前注意不要出於商業用途,也不要爬取人家的商業數據。像我就只分析下自己的博客數據,問題不大。

代碼

使用的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++;
   	}
   }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章