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

news2024/11/16 19:49:45

一、获取所有文章地址

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 requests

import html2text

data = [
{
        "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转换为Markdown
    md_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='
    # 解析错误的url
    err_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.coloradmin.cn/o/2168513.html

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

相关文章

62.【C语言】浮点数的存储

目录 1.浮点数的类型 2.浮点数表示的范围 3.浮点数的特性 《计算机科学导论》的叙述 4.浮点数在内存中的存储 答案速查 分析 前置知识:浮点数的存储规则 推导单精度浮点数5.5在内存中的存储 验证 浮点数取出的分析 1.一般情况:E不全为0或不全为1 2.特殊情况:E全为0…

P335_0334韩顺平Java_零钱通介绍

目录 P335_0334韩顺平Java_零钱通介绍代码过程编程OOP(Object-Oriented Project) 参考资料 P335_0334韩顺平Java_零钱通介绍 先完成显示菜单,并可以选择。完成零钱通明细。完成收益入账。消费。退出。 PS:判断时尽量用不正确的条…

BEV学习---LSS4-模型训练

主要借鉴如下链接: https://blog.csdn.net/m0_51579041/article/details/140746160 测试命令如下,均已跑通: # 验证集iou计算: python main.py eval_model_iou mini -bsz1 --nworkers0 --gpuid0 --modelf./model/model525000.pt…

【CSS/HTML】圣杯布局和双飞翼布局实现两侧宽度固定,中间宽度自适应及其他扩展实现

前沿简介 圣杯布局和双飞翼布局是前端重要的布局方式。两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局。 圣杯布局来源于文章In Search of the Holy Grail,双飞翼布局来源于淘宝UED。 两者的实现方式有差异,但是都…

Java文件上传同时传入JSON参数

前言 此篇文章用于解决一个接口内同时完成文件的上传及JSON参数的传入(生产环境已验证); 1.准备接口 import cn.cdjs.vo.UserVO; import cn.hutool.json.JSONUtil; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFi…

黑马头条day4 自媒体文章自动审核

阿里云内容安全调用 其实这个接口调用不是很难 但是需要花钱 就没买 我开了按量计费 但是还是不行 所以就没测试 于是尝试自己写返回成功值 效果不好 后来发现不如直接在函数里边取消调用文字和图片审核 这样更简单 远程调用与降级处理 这里有个bug调试了好久 第一个就是总…

C++面试题第一弹

TCP、UDP区别及使用场景 从TCP和UDP的特点来看,连接性,可靠性,以及面向字节流还是数据报来说。 区别: 连接性:TCP面向连接,而UDP无连接。对TCP来说,在数据传输之前,通信双发需要…

gradle镜像配置

当我们在Android Studio中新建项目或者打开已有项目时,会下载gradle文件,当使用官方的下载源时很慢,经常会下载失败,国内我们可以使用腾讯或者阿里的镜像,一般下载速度很快。 一、gradle下载地址 官网地址&#xff1…

02——springboot2——热部署

什么是热部署 简单说就是你程序代码修改了,现在要重新启动服务器才能加载刚刚新写的代码,如果每次修改代码都要重新启动服务器,这样就真的太麻烦了(运行一些稍微较大的项目,运行时间是很长的,所以每次修改…

docker - 镜像操作(拉取、查看、删除)

文章目录 1、docker search --help(用于显示 Docker 搜索命令的帮助信息)2、docker pull(拉取镜像)3、docker images (查看镜像)3.1、docker images --help(用于显示 Docker 镜像管理相关命令的帮助信息)3.…

【C++】——vector深度剖析模拟实现

低头赶路,敬事如仪 目录 1、模拟vector 1.1底层结构 1.2构造析构 1.3尾插扩容 1.4迭代器 1.5增删查改 1.6模拟中的注意事项 2、vector模拟补充 2.1迭代器区间构造问题 2.2memcpy深浅拷贝问题 2.3动态二维数组的模拟及遍历 1、模拟vector 想要模拟实现自…

即梦PixelDance:从追赶到领跑,一跃成为全球AI竞赛的领航者!

今年2月份,OpenAI发布了全新的文生视频模型Sora,那一次的发布,成功开启了AI视频生成的ChatGPT时刻。 看到Sora的发布视频,我相信有很多小伙伴和我一样被深深得震撼了! 只需一个指令就可以生成一段逼近真实的视频&…

NBOUND 2024:与AI 一起推动业务增长

在2024年,我们的企业有幸参加了INBOUND大会,这是HubSpot为期三天的动态会议,专注于探讨营销、销售和人工智能领域的最新趋势和策略。作为HubSpot的合作伙伴,我们在这里不仅学习和分享,更见证了如何通过AI推动增长的无限…

【DAY20240926】智能时隙选择器

文章目录 要点元模型和本地模型的关系lstm模型更新Q-learning选择策略:ϵ-greedy动作空间(𝑎𝑡𝑖−1∈{add,stay,minus}): 要点 The intelligent time slot selector is composed of a meta model on the …

提升并行效率的Python多处理模块指南

在Python中,multiprocessing 模块提供了强大的多进程支持,能够帮助我们充分利用多核CPU资源来实现并行计算。相比传统的多线程模式,Python的多进程模式更加高效,因为它可以避免Python的全局解释器锁(GIL)对…

一个超强大的Python数据探索工具

在数据分析的过程中,快速掌握数据集的基本特征是必不可少的一步。虽然 Pandas 提供了方便的 df.describe() 方法来生成数据摘要,但随着数据类型和分析需求的多样化,这一方法的局限性逐渐显现。Skimpy 作为一个新兴的 Python 包,旨…

基于mybatis-plus创建springboot,添加增删改查功能,使用postman来测试接口出现的常见错误

1 当你在使用postman检测 添加和更新功能时,报了一个500错误 查看idea发现是: Data truncation: Out of range value for column id at row 1 通过翻译:数据截断:表单第1行的“id”列出现范围外值。一般情况下,出现这个…

什么是Agent智能体?

你好,我是三桥君 近期,从各大厂商的年度大会到多个大型AI峰会,三桥君明显感受到行业风气的转变。这些会议不仅展示了众多AI Agent的实际应用案例,还有专家们对未来发展的预测。一时间,“Agent”这个词成为了热门词汇&…

Linux(含麒麟操作系统)如何实现多显示器屏幕采集录制

技术背景 在操作系统领域,很多核心技术掌握在国外企业手中。如果过度依赖国外技术,在国际形势变化、贸易摩擦等情况下,可能面临技术封锁和断供风险。开发国产操作系统可以降低这种风险,确保国家关键信息基础设施的稳定运行。在一…

多态的遗留问题以及C++中杂项,C++面试题

C面试题 1.什么是虚函数?什么是纯虚函数 虚函数:在类的继承中,基类中的函数前加virtual声明的函数就是虚函数。 虚函数实现了运行的多态,同一函数调用在不同对象中表现出不同的行为 纯虚函数:在基类中声明但没有实…