1. 如何爬取自己的CSDN博客文章列表(獲取列表)(博客列表)(手動+python代碼方式)

文章目錄

    • 寫在最前
    • 步驟
      • 打開chrome瀏覽器,登錄網頁
      • 按pagedown一直往下刷呀刷呀刷,直到把自己所有的博文刷出來
      • 然后我們按F12,點擊選取元素按鈕
      • 然后隨便點一篇博文,產生如下所示代碼
      • 然后往上翻,找到頭,復制
      • 然后到編輯器里粘貼,然后保存文件為export.html
      • 用vscode格式化
      • 撰寫python代碼parse.py
      • 將export.html恢復之前的格式
      • 執行解析代碼
      • 查看articles.json文件
    • 本篇文章就告一段落了,如有興趣,可以看我下一篇文章,我們基于本篇文章得到的結果,獲取每篇CSDN博文質量分并按質量分由小到大排序

下一篇:2. 獲取自己CSDN文章列表并按質量分由小到大排序(文章質量分、博文質量分)

寫在最前

一開始我想弄個python代碼,直接爬取https://blog.csdn.net/Dontla?type=blog頁面的的所有已發布文章列表,但是貌似爬不到,也不知道是什么原因,可能是大佬做了限制,不讓爬。。。

并非做了限制,可以看這篇博客:如何批量查詢自己的CSDN博客質量分

我只能想其他辦法了,,,

后來想到一個辦法,既然不讓爬,就自己手工拷貝吧,這還是能做到的。

步驟

打開chrome瀏覽器,登錄網頁

https://blog.csdn.net/Dontla?type=blog

在這里插入圖片描述

按pagedown一直往下刷呀刷呀刷,直到把自己所有的博文刷出來

在這里插入圖片描述

刷完老費勁了

然后我們按F12,點擊選取元素按鈕

在這里插入圖片描述

然后隨便點一篇博文,產生如下所示代碼

這里每一個article開頭的都我們剛剛刷出來的一篇博文:

在這里插入圖片描述

然后往上翻,找到頭,復制

找到這個div data...>的頭,然后點擊右鍵,選擇復制復制–>復制outerHTML:

在這里插入圖片描述

然后到編輯器里粘貼,然后保存文件為export.html

在這里插入圖片描述

用vscode格式化

格式化之后,就很清晰了,每個article標簽就是我們的一篇博文,我們就是要對每個article標簽內的內容實行抓取:

在這里插入圖片描述

撰寫python代碼parse.py

求助最強大腦:

我有一個export.html文件,里面有很多個article標簽,每個標簽內容大致如下:

  <article data-v-6fe2b6a7="" data-v-bb5f5e3e="" class="blog-list-box"><a data-v-6fe2b6a7=""href="https://dontla.blog.csdn.net/article/details/132237839" target="_blank"data-report-click="{&quot;spm&quot;:&quot;3001.5502&quot;}" data-report-query="spm=3001.5502"><div data-v-6fe2b6a7="" class="blog-img-box"><img data-v-6fe2b6a7=""src="https://img-blog.csdnimg.cn/3b61264764cb43f8ad91b6b5b7e4e65e.png" alt="" class="course-img"></div><div data-v-6fe2b6a7="" class="list-box-cont"><div data-v-6fe2b6a7=""><div data-v-6fe2b6a7="" class="blog-list-box-top"><h4 data-v-6fe2b6a7="">python虛擬環境venv安裝報錯:error: invalid command ‘bdist_wheel‘(需要在虛擬環境中安裝wheel包,pip installwheel)</h4></div><div data-v-6fe2b6a7="" class="blog-list-content">是一個Python的打包工具,用于構建和安裝Python軟件包。包,然后再安裝之前安裝報錯的包。在虛擬環境中運行以下命令安裝。這個錯誤通常是由于缺少。</div></div><div data-v-6fe2b6a7="" class="blog-list-footer"><div data-v-6fe2b6a7="" class="blog-list-footer-left"><div data-v-6fe2b6a7="" class="article-type article-type-yc">原創</div> <!----> <!----> <!----><div data-v-6fe2b6a7="" class="view-time-box">發布博客&nbsp;2 小時前&nbsp;·</div><div data-v-6fe2b6a7="" class="view-num-box"><span data-v-6fe2b6a7="" class="view-num">6<spandata-v-6fe2b6a7="" class="two-px">&nbsp;閱讀&nbsp;·</span></span></div><div data-v-6fe2b6a7="" class="give-like-box"><span data-v-6fe2b6a7="" class="give-like-num">0<spandata-v-6fe2b6a7="" class="two-px">&nbsp;點贊&nbsp;·</span></span></div><div data-v-6fe2b6a7="" class="comment-box"><span data-v-6fe2b6a7="" class="comment-num">0<spandata-v-6fe2b6a7="" class="two-px">&nbsp;評論&nbsp;·</span></span></div><div data-v-6fe2b6a7="" class="comment-box"><span data-v-6fe2b6a7="" class="comment-num">0<spandata-v-6fe2b6a7="" class="two-px">&nbsp;收藏</span></span></div></div> <!----></div></div></a></article>

我需要你用python幫我遍歷這個文件,然后將每個article中的內容提取出來,做成一個json文件,每個文章提取為一個數組元素,數組元素中要有以下字段:article_url字段(class="blog-list-box"后面那個)、article_title字段(class="blog-list-box-top"后面那個)、article_type(class="article-type article-type-yc"后面那個)

根據最強大腦給出的結果,我再刪刪改改,得出了這樣一個代碼:

(parseHtml.py)

from bs4 import BeautifulSoup
import json# 讀取HTML文件
with open('export.html', 'r', encoding='utf-8') as f:html = f.read()# 創建BeautifulSoup對象
soup = BeautifulSoup(html, 'html.parser')# 遍歷article標簽
articles = []
for article in soup.find_all('article'):# 提取字段內容article_url = article.find('a')['href']article_title = article.find('h4').textarticle_type = article.find(class_='article-type').text.strip()article_time = article.find(class_='view-time-box').text.strip().replace('發布博客', '').replace('·', '').strip()# 構造字典article_dict = {'article_url': article_url,'article_title': article_title,'article_type': article_type,'article_time': article_time}# 添加到數組articles.append(article_dict)# 生成json文件
with open('articles.json', 'w', encoding='utf-8') as f:json.dump(articles, f, ensure_ascii=False, indent=4)

代碼解釋:使用BeautifulSoup庫來解析HTML文件,并使用json庫來生成json文件。

將export.html恢復之前的格式

執行前我們先恢復原始格式,因為我的vscode格式化之后,貌似加入了很多無關的\n以及空格,搞到后面解析結果不好了:

在這里插入圖片描述

我們把export.html文本恢復成這樣:

在這里插入圖片描述

執行解析代碼

在這里插入圖片描述

執行python代碼:

python3 parse.py

在這里插入圖片描述
在這里插入圖片描述

生成了articles.json文件。

查看articles.json文件

可以說結果非常的完美:

在這里插入圖片描述

[
{
“article_url”: “https://dontla.blog.csdn.net/article/details/132237839”,
“article_title”: “python虛擬環境venv安裝報錯:error: invalid command ‘bdist_wheel‘(需要在虛擬環境中安裝wheel包,pip install wheel)”,
“article_type”: “原創”
},
{
“article_url”: “https://dontla.blog.csdn.net/article/details/132212623”,
“article_title”: “Docker可視化容器監控工具portainer.io(docker監控docker)(Docker Standalone、Docker Swarm、Kubernetes、ACI、Nomad)監控容器”,
“article_type”: “原創”
},
{
“article_url”: “https://dontla.blog.csdn.net/article/details/132216588”,
“article_title”: “FQDN是什么?全限定域名(Fully Qualified Domain Name)(主機名、次級域名、頂級域名)”,
“article_type”: “轉載”
},
{
“article_url”: “https://dontla.blog.csdn.net/article/details/132178650”,
“article_title”: “ubuntu python虛擬環境venv搭配systemd服務實戰”,
“article_type”: “原創”
}
]

本篇文章就告一段落了,如有興趣,可以看我下一篇文章,我們基于本篇文章得到的結果,獲取每篇CSDN博文質量分并按質量分由小到大排序

下一篇:2. 獲取自己CSDN文章列表并按質量分由小到大排序(文章質量分、博文質量分)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36754.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36754.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36754.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

1.2 操作系統原理和常見命令

操作系統原理和常見命令 文章目錄 操作系統原理和常見命令操作系統原理操作系統的概述進程管理內存管理文件系統設備管理安全性操作系統的角色 操作系統中的常見命令和操作 操作系統原理 操作系統的概述&#xff1a; 定義&#xff1a;操作系統是控制和管理計算機硬件與軟件資源…

Java-類型和變量(基于C語言的補充)

一個簡單的Java程序 args){ System.out.println("Hello,world"); } }通過上述代碼&#xff0c;我們可以看到一個完整的Java程序的結構&#xff0c;Java程序的結構由如下三個部分組成&#xff1a; 1.源文件&#xff08;擴展名為*.java)&#xff1a;源文件帶有類的定義…

ios消息推送例子

通過Apple推送服務&#xff0c;將消息發送給特定的ios客戶端&#xff0c;這是服務器端實例代碼。需要客戶端的voip key值&#xff0c;以及相應的客戶端回調接口&#xff0c;支持ios9.0以上版本。 下載地址&#xff1a;https://download.csdn.net/download/m0_37567738/8821559…

[保研/考研機試] KY7 質因數的個數 清華大學復試上機題 C++實現

描述 求正整數N(N>1)的質因數的個數。 相同的質因數需要重復計算。如1202*2*2*3*5&#xff0c;共有5個質因數。 輸入描述&#xff1a; 可能有多組測試數據&#xff0c;每組測試數據的輸入是一個正整數N&#xff0c;(1<N<10^9)。 輸出描述&#xff1a; 對于每組數…

leetcode 6914. 翻倍以鏈表形式表示的數字

給你一個 非空 鏈表的頭節點 head &#xff0c;表示一個不含前導零的非負數整數。 將鏈表 翻倍 后&#xff0c;返回頭節點 head 。 示例 1&#xff1a; 輸入&#xff1a;head [1,8,9] 輸出&#xff1a;[3,7,8] 解釋&#xff1a;上圖中給出的鏈表&#xff0c;表示數字 189 。返…

Photoshop快捷鍵大全

Photoshop是一款非常強大的圖像處理軟件&#xff0c;它提供了許多快捷鍵&#xff0c;可以幫助用戶更快地完成操作。熟練掌握這些快捷鍵&#xff0c;可以大大提高工作效率&#xff0c;讓您更加專注于創作。 Photoshop快捷鍵匯總&#xff1a; 一、基本操作快捷鍵 1. 新建文檔…

什么是CSS中的漸變(gradient)?如何使用CSS創建線性漸變和徑向漸變?

聚沙成塔每天進步一點點 ? 專欄簡介? 漸變&#xff08;Gradient&#xff09;在CSS中的應用? 線性漸變&#xff08;Linear Gradient&#xff09;語法&#xff1a;示例&#xff1a; ? 徑向漸變&#xff08;Radial Gradient&#xff09;語法&#xff1a;示例&#xff1a; ? 寫…

第06天 靜態代理和動態代理

?作者簡介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;熱愛Java后端開發者&#xff0c;一個想要與大家共同進步的男人&#x1f609;&#x1f609; &#x1f34e;個人主頁&#xff1a;Leo的博客 &#x1f49e;當前專欄&#xff1a;每天一個知識點 ?特色專欄&#xff1a…

36 | 銀行貸款數據分析

本文將以銀行貸款數據分析為主題,深入探討如何運用數據科學的方法,揭示銀行貸款領域的內在規律和趨勢。通過對貸款數據的分析,我們能夠洞察不同類型貸款的分布情況、貸款金額的變化趨勢,以及借款人的特征和還款情況等關鍵信息。 通過運用Python編程語言及相關的數據分析工…

arcgis定義投影與投影

1、定義 地理坐標系&#xff08;GCS&#xff09;&#xff1a;利用地球表面的經緯度表示的坐標系統。一般單位為度。投影坐標系&#xff08;PCS&#xff09;&#xff1a;利用數學換算將三維地球表面上的經緯度坐標轉換到二維平面上的坐標系統。一般單位為米。可以認為&#xff…

【ARM Cache 系列文章 9 番外篇 -- ARMv9 系列 Core 介紹】

文章目錄 ARMv9 系列CoreARM Cortex-A510 介紹ARM Cortex-A715ARM Cortex-A720 ARMv9 系列Core 2021年5月Arm公布了其最新3款CPU和3款GPU核心設計&#xff0c;三款新CPU分別是旗艦核心Cortex-X2、高性能核心Cortex-A710、高能效核心Cortex-A510 CPU&#xff0c;三款新GPU核心則…

【Unity每日一記】向量操作攝像機的移動(向量加減)

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;元宇宙-秩沅 &#x1f468;?&#x1f4bb; hallo 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;?&#x1f4bb; 本文由 秩沅 原創 &#x1f468;?&#x1f4bb; 收錄于專欄&#xff1a;uni…

TCP消息傳輸可靠性保證

TCP鏈接與斷開 -- 三次握手&四次揮手 三次握手 TCP 提供面向有連接的通信傳輸。面向有連接是指在數據通信開始之前先做好兩端之間的準備工作。 所謂三次握手是指建立一個 TCP 連接時需要客戶端和服務器端總共發送三個包以確認連接的建立。在socket編程中&#xff0c;這一…

算法模版,今天開始背

二分查找算法 int left_bound(int[] nums, int target) {int left 0, right nums.length - 1;// 搜索區間為 [left, right]while (left < right) {int mid left (right - left) / 2;if (nums[mid] < target) {// 搜索區間變為 [mid1, right]left mid 1;} else if …

ubuntu更換國內apt源

ubuntu必備操作 1 更換apt鏡像源 備份鏡像 cp /etc/apt/sources.list /etc/apt/sources.list.bak查看自己ubuntu版本 # 查看自己的codename #查看自己的ubuntu版本[注意關注&#xff1a;DISTRIB_CODENAME&#xff0c;發行代號] cat /etc/*release# DISTRIB_CODENAMEcosmic …

面試熱題(合并K個升序鏈表)

給定一個鏈表數組&#xff0c;每個鏈表都已經按升序排列。 請將所有鏈表合并到一個升序鏈表中&#xff0c;返回合并后的鏈表。 輸入&#xff1a;lists [[1,4,5],[1,3,4],[2,6]] 輸出&#xff1a;[1,1,2,3,4,4,5,6] 解釋&#xff1a;鏈表數組如下&#xff1a; [1->4->5,1…

【軟件工程】面向對象方法-RUP

RUP&#xff08;Rational Unified Process&#xff0c;統一軟件開發過程&#xff09;。 RUP特點 以用況驅動的&#xff0c;以體系結構為中心的&#xff0c;迭代增量式開發 用況驅動 用況是能夠向用戶提供有價值結果的系統中的一種功能用況獲取的是功能需求 在系統的生存周期中…

解決在vue中img標簽不顯示圖片的問題

在vue中, 經常會遇到img標簽不展示的問題, 本人遇到兩種, 都是因為webpack打包, 導致找不到路徑, 所以不現實, 總結幾個可以解決本地圖片路徑顯示不出來的問題&#xff1a; 1.把圖片放在src同級的static文件夾下。 2.把圖片放在cdn上&#xff0c;把網絡地址存在imgUrl里&#x…

RabbitMQ: 詳解、使用教程和示例

RabbitMQ: 詳解、使用教程和示例 什么是 RabbitMQ&#xff1f; RabbitMQ 是一個開源的消息代理&#xff08;Message Broker&#xff09;軟件&#xff0c;它實現了高級消息隊列協議&#xff08;AMQP&#xff09;&#xff0c;用于在應用程序之間進行異步消息傳遞。它允許應用程…

uni-app日期選擇器

寫個簡單的日期選擇器&#xff0c;還沒搞樣式&#xff0c;所以有點丑 大概長這樣吧 首先是這個picker選擇器&#xff0c;mode選擇日期&#xff0c;end是寫一個范圍前日期&#xff0c;:end就是這個日期是動態變化的&#xff0c;還有change函數 <template><view>&l…