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页面的的所有已发布文章列表,但是貌似爬不到,也不知道是什么原因,可能是大佬做了限制,不让爬。。。

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

后来想到一个办法,既然不让爬,就自己手工拷贝吧,这还是能做到的。

步骤

打开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_dict = {'article_url': article_url,'article_title': article_title,'article_type': article_type}# 添加到数组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://xiahunao.cn/news/1380329.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Maven在IDEA2021版本中全局配置(一次配置处处生效)

前言 我们在开发中&#xff0c;Maven是必不可少的&#xff0c;但是每次都需要设置一遍Maven的仓库和settings.xml。真的是心累&#xff0c;今天教大家全局配置一下。再也不要每次项目都配了&#xff0c;Maven还经常出问题。 解决方案 友情提示&#xff1a;小编的IDEA版本为2…

Tableau 聚合计算 - 分组求和(sum、fixed、include的使用)

一、聚合计算例子 有以下数据&#xff1a; // 计算1 SUM(IF [shuxue]123 then [yingyu] END)// 计算2 IF [shuxue]123 then {fixed [shuxue]: SUM([yingyu])} END// 计算3 IF [shuxue]123 then {SUM([yingyu])} END// 计算4 {fixed [shuxue]: SUM([yingyu])}// 计算5 {include…

Kubernetes pod调度约束[亲和性 污点] 生命阶段 排障手段

调度约束 Kubernetes 是通过 List-Watch 的机制进行每个组件的协作&#xff0c;保持数据同步的&#xff0c;每个组件之间的设计实现了解耦。 用户是通过 kubectl 根据配置文件&#xff0c;向 APIServer 发送命令&#xff0c;在 Node 节点上面建立 Pod 和 Container。 APIServer…

[Pandas] 分组比例计算求和

美图欣赏2022/08/01 问题:在最近的需求开发中&#xff0c;有这么个分组比例计算求和问题&#xff0c;根据字段CPN进行分组&#xff0c;计算每一笔PO Line Actual CT2R * line 数量比重&#xff0c;取名为Weighted(QTY)CT2R&#xff0c;再根据相同的CPN对每行Weighted(QTY)CT2R值…

SQL多字段分组求和

表结构 表数据 按店铺名称、发货时间分组并求总数 select g.[店铺名称],g.[发货时间],sum(g.[数量]) as 总数 from t_goods g GROUP BY g.[店铺名称],g.[发货时间] ORDER BY g.[店铺名称]

oracle 分析函数之分组求和、连续求和

最近在《sql cookbook》书上发现了名叫 分析函数 的东西&#xff0c;之前学 oracle 时没有印象&#xff0c;现在感觉其分析函数的功能相当强大、神奇&#xff0c; 就特意去找到了 chm 文档研究了一下&#xff0c;想要的朋友在本文末尾自行下载。 本文的例子都来源于 chm 文档…

简单卡通水

参考 https://roystan.net/articles/toon-water/ 源码 https://github.com/IronWarrior/ToonWaterShader 两张噪声图 挂在相机上&#xff0c;开启深度模式&#xff0c;使shader可以拿到深度图 using UnityEngine;public class ChangeCameraDepth : MonoBehaviour {public De…

编写简单的动画

UIImageView提供了实现简单动画的功能。比如要实现这样的功能&#xff1a; 跳动的火焰。基本思路是&#xff0c;一个数组&#xff0c;包含火焰跳动所需的多张图片。然后设置播放时间&#xff0c;并开始播放。UIImageView已经提供了这方面的机制&#xff0c;只需把图片数组交给它…

干货!学会这些动漫绘画素材,小白也能学会动漫绘画,简单易学!

百头练习 只画头部,着重对五官进行精细刻画。 女性头像练习 1 定出五官的位置,注意不管是什么角度,人的眼睛、嘴巴都是和鼻子呈90的。 2 画出五官。 3 注意线条有实有虚,把五官细化描绘出来,然后大致勾勒出头发的走向。 4 画出头发丝和眼珠。 5 添加光影,使头发…

制作简单的动画

1、使用jQuery&#xff08;annimate&#xff09;制作 a、首先要做简单的页面布局&#xff08;两个div加上10幅图&#xff09; <div id"img2"><input type "button" value"上一页" id"a" ></input><input type…

使用埋点方式对应用监控

在指标监控的世界里&#xff0c;应用和业务层面的监控有两种典型手段&#xff0c;一种是在应用程序里埋点&#xff0c;另一种是分析日志&#xff0c;从日志中提取指标。埋点的方式性能更好&#xff0c;也更灵活&#xff0c;只是对应用程序有一定侵入性&#xff0c;而分析日志的…

PHP傻瓜也能搭建自己框架

PHP最简单自定义自己的框架&#xff08;一&#xff09; PHP最简单自定义自己的框架创建目录结构&#xff08;二&#xff09; PHP最简单自定义自己的框架定义常量自动生成目录&#xff08;三&#xff09; PHP最简单自定义自己的框架控制器自动加载运行&#xff08;四&#xf…

日期计算器输入天数计算日期_计算日期范围内的活动

日期计算器输入天数计算日期 Todays challenge is to count how many guests stayed at a hotel, in a specific date range, based on the guest arrival and departure dates. 今天的挑战是&#xff0c;根据客人的到达和离开日期&#xff0c;计算在特定日期范围内在酒店住宿…

【nacos】Param ‘serviceName‘ is illegal, serviceName is blank

报错信息 解决方式 一&#xff1a;缺少依赖 SpringBoot2.4之后不会默认加载bootstrap.yaml&#xff1b;需要手动在pom中加入如下依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-boot…

PHP利用PCRE回溯次数限制绕过某些安全限制实战案例

目录 一、正则表达式概述 有限状态自动机 匹配输入的过程分别是&#xff1a; DFA&#xff08;确定性有限状态自动机&#xff09; NFA&#xff08;非确定性有限状态自动机&#xff09; 二、回溯的过程 三、 PHP 的 pcre.backtrack_limit 限制利用 例题一 回溯绕过步骤 &…

快手在线查询权重网站源码+接口

简介&#xff1a; 快手在线查询权重源码次快手权重查询优化了算法&#xff0c;修复很多之前抖音遇到的算法上的bug&#xff0c;不再有随机数&#xff0c;每一项都是根据实际情况固定输出&#xff08;包括评分&#xff0c;发作品时间等等&#xff09; 新增用户访问ip&#xff0…

抖音皮皮虾快手无水印解析软件

介绍&#xff1a; 有一张图是获取快手cookies的方法&#xff0c;就从&#xff1a;https://live.kuaishou.com/ 登录后取出&#xff0c;随便点个链接都有啦。 网盘下载地址&#xff1a; https://zijiewangpan.com/qfNsBxGVNEs 图片&#xff1a;

集合数据类型

非数字型 列表[]&#xff08;其他语言叫数组&#xff09; 注意点&#xff1a;第一个成员的索引编号为0&#xff0c;不能访问不存在的索引编号 # list是列表变量名&#xff0c;列表中有三个成员 list[刘备,曹操,关羽] print(list[0]) print(list[1]) print(list[2]) print(li…

粘福卡多次扫,绝对真实!!!

转载于:https://www.cnblogs.com/angusbao/p/10336782.html