CSDN文章备份,批量导出文章为markdown

我真服了。。。。太久没登,如图所示(公开文章自动变VIP了 。。删除线保护

在这里插入图片描述

准备整个脚本把文章下载导出markdown

找了一下,发现之前的的方法挺多都修复了。。。还加了反爬机制,自带的导出pdf文档,里面的代码无法完全显示

找了下是最新的方法:CSDN文章导出md并迁移至博客园 准备迁移过去了

尝试1

看了下脚本,说是要把所有文章全部开放,不能有vip文章或者付费,否则会爬取失败。。。。。可是平台已经给我自动设置成了vip文章了。。。不想手动一篇篇重新发布修改了(好像有脚本可以一键改来着,不过改了要全部重新发布)

尝试2,使用edge编程

可以看到如果是使用了markdown编辑器编辑的文章,在上面是有一个导出的操作的,可以导出成markdown或者是html文件。
参考:
python模拟操作edge浏览器,完成问题的采集
Python爬虫实战——获取指定博主所有专栏链接及博文链接

在这里插入图片描述

查看版本信息

在这里插入图片描述
在这里插入图片描述
下个对应版本驱动然后丢在python的目录下面,我下的驱动版本后面几位数对不上,应该能用

在这里插入图片描述

直接丢脚本,写的比较拉,有时会崩溃。。。能用就行.jpg

注意事项:这个只能导出自己写并发布的文章,本质就是模拟点击使用官方编辑器导出markdown文档。而且得是用markdown编辑器编辑的,富文本只能用右下角的导出为pdf(绝不是偷懒没写

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import WebDriverException
from bs4 import BeautifulSoup
import os
import requests
import time
import pickle
#from DrissionPage import ChromiumOptions

# 初始化Edge浏览器驱动
page = None
 
# 保存cookies,登录成功后随便输入个字符就行
def SaveCookies():
    global page
    # 等待一段时间
    time.sleep(5)
    #input("input something:")

    # 在成功登录后,保存 Cookies
    cookies = page.get_cookies()
    with open("cookies.pkl", "wb") as cookies_file:
        pickle.dump(cookies, cookies_file)

def login():
    global page
    # 尝试加载之前保存的 Cookies
    try:
        page.get("https://blog.csdn.net")  # 替换为你想要打开的URL
        with open("cookies.pkl", "rb") as cookies_file:
            cookies = pickle.load(cookies_file)
            for cookie in cookies:
                page.add_cookie(cookie)
        page.refresh()  # 刷新页面以应用 Cookies
    except FileNotFoundError:
        print("没有找到 Cookies 文件,请先手动登录并保存 Cookies。")
        time.sleep(60)  # 一分钟内登录
        SaveCookies()


def click_element(driver, locator, wait_time=20):
    """ 封装点击元素的函数,支持重试机制 """
    for _ in range(3):  # 重试 3 次
        try:
            element = WebDriverWait(driver, wait_time).until(EC.element_to_be_clickable(locator))
            element.click()
            time.sleep(3)  #点击完成后等待3s
            return True
        except Exception as e:
            print(
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ofo300

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值