当前位置: 首页 > news >正文

CSDN文章导出md并迁移至博客园

一、获取所有文章地址

1.进csdn首页,点击自己的头像

2.在个人主页界面,按F12打开控制台,并找到network,找到get-business开头的请求,右键copy他的url

3.选择console,输入一下代码,其中fetch里面的url是你刚才复制的地址,并把里面的size改为100(这个是返回的文章内容数,上限为100),page是页码数,如果你的文章数大于100,那么后面的请求需要将page=1改为2,3,4...一直到你请求完所有的文章,这里以page=1,size=100请求的数据来进行处理:

fetch('https://blog.csdn.net/community/home-api/v1/get-business-list?page=1&size=100&businessType=blog&orderby=&noMore=false&year=&month=&username=qq_35204012')  .then(response => {  if (!response.ok) {  throw new Error('Network response was not ok');  }  return response.json(); // 假设服务器响应的是JSON格式的数据  })  .then(data => {  console.log(data); // 处理并显示响应的数据  })  .catch(error => {  console.error('There has been a problem with your fetch operation:', error);  });

执行后的结果:

可以看到,这里打印了一百篇博文数据

4.将鼠标放在list上并右键copy object

5.将内容去掉[]后复制到脚本的data里面,data是一个列表,里面包含若干字典,注意格式(需要将所有的false替换为False,true替换为True),根据自己的博文数量,修改page的值,找到所有的文章信息复制到脚本的data数据里面

二、使用脚本进行采集

注意:需要将所有文章全部开放,不能有付费或者VIP文章,需要将data里面的内容替换为你自己的,记得在脚本目录创建一个md文件夹用来放md文件

import pandas as pd
import requestsimport html2textdata = [
{"articleId": 139602661,"title": "微信AI机器人使用说明-2024本地部署版(非wechaty)","description": "微信机器人实现的功能,先看视频的演示效果:2024年最新稳定的本地部署AI微信机器人使用方法演示可以对话可以语音可以绘画支持主账号管理好友权限管理。","url": "https://blog.csdn.net/qq_35204012/article/details/139602661","type": 1,"top": True,"forcePlan": False,"viewCount": 1581,"commentCount": 0,"editUrl": "https://mp.csdn.net/console/editor/html/139602661","postTime": "2024-06-11 16:31:56","diggCount": 34,"formatTime": "2024.06.11","picList": ["https://img-blog.csdnimg.cn/img_convert/cf52fbe57e404f30babcdda6f1ef2c08.png"],"collectCount": 6}
]def html_to_md(html_content, output_file):"""将HTML内容转换为Markdown,并保存到指定的文件。:param html_content: str, 要转换的HTML内容:param output_file: str, 输出的Markdown文件名(包括路径)"""# 创建一个html2text转换器对象h = html2text.HTML2Text()# 使用转换器的handle方法将HTML转换为Markdownmd_content = h.handle(html_content)# 将转换后的Markdown内容写入文件with open(output_file, 'w', encoding='utf-8') as f:f.write(md_content)if __name__ == '__main__':url_list = [{'url': item['url'], 'title': item['title']} for item in data]# 解析地址base_url = 'https://www.helloworld.net/getUrlHtml?url='# 解析错误的urlerr_list = []for item in url_list:try:print(item['url'])res = requests.get(base_url + item['url'])content = res.json().get('html')title = item['title']print(title+'已完成')# 调用函数,将HTML转换为Markdown并保存为文件html_to_md(content, os.path.join('md', f'{title}.md')
) except Exception as e: print(e) err_list.append(item['url']) if err_list: print(err_list) df = pd.DataFrame([{'name': err_list}]) df.to_csv('err.csv', index=False)

导出的结果如下:

三、博客园上传文章

1.选择导入文章,也可以在随笔里面上传md

2.选择自己的markdown文件

3.编辑随笔或文章

4.拉取图片,许多文章他是有图片的,图片如果有防盗链的话就没办法显示,所以需要手动拉取一下图片

5.拉取成功后,发布即可!

http://www.lryc.cn/news/446611.html

相关文章:

  • 计算机组成原理(笔记5原码和补码的乘法以及直接补码阵列乘法器 )
  • 【hot100-java】【括号生成】
  • k8s_资源管理介绍
  • 操作简单 地检编码器 武汉正向科技售后优质
  • 2024中国新能源汽车零部件交易会,开源网安展示了什么?
  • Java解析嵌套jar中class文件
  • 【含文档】基于Springboot+Vue的高校竞赛管理系统(含源码+数据库+lw)
  • 在大模型应用层面区分对比检索增强生成RAG技术和知识库技术
  • 云和恩墨携手华为,发布zCloud数据库备份管理一体机并宣布共建数据保护生态...
  • Linux系统备份Gitee等云git所有仓库与所有分支的数字资产
  • JavaScript 条件循环语句
  • LeetCode2207解题思路
  • opencv图像增强十四:opencv两种白平衡介绍及实现
  • Linux标准IO(四)-格式化I/O输入
  • 分布式安装LNMP
  • TFTP协议
  • FPGA随记-二进制转格雷码
  • Android常用C++特性之std::unique_lock
  • 网络与信息安全工程师(工信部教育与考试中心)
  • uni-app+vue3开发微信小程序使用本地图片渲染不出来报错[渲染层网络层错误]Failed to load local image resource
  • Leetcode 93-复原 IP 地址
  • unity 中向指定的动画片段添加动画事件,并播放动画,同时获取动画片段的时长。
  • JavaEE:探索网络世界的魅力——玩转UDP编程
  • 生成式人工智能:企业数字化转型的全新引擎,深度解析The Open Group 2024生态系统架构·可持续发展年度大会
  • 阿里云k8s如何创建可用的api token
  • leetcode刷题day30|贪心算法Part04重叠区间问题(452. 用最少数量的箭引爆气球、435. 无重叠区间、763.划分字母区间)
  • MQTT客户端实战:从连接到通信。详细说明MQTT客户端和MQTT代理进行通信
  • 【go/方法记录】cgo静态库编译以及使用dlv定位cgo崩溃问题
  • (笔记自用)位运算总结+LeetCode例题:颠倒二进制位+位1的个数
  • 024.PL-SQL进阶—游标