知乎文章转markdown

知乎链接转markdown/pdf方法

在GitHub上看到了一个有意思的知乎内容转markdown到本地的方案([原链接在此,希望大家多都给原作者star,push他更新知乎反爬机制]
在这里插入图片描述

试用网站链接

作者还提供了一个体验版的网站(网站链接),网站长这样,提供你自己的知乎cookie和想要下载的链接即可下载(专栏还可以批量下载属于小惊喜啦)
在这里插入图片描述

cookie获取方法

关于cookie获取的方法,GitHub链接上也有详细介绍(cookie指路
相关内容贴一下:

  1. 步骤 1: 进入知乎首页并登录
    进入知乎首页,登录账号后按下 F12,点击 Network 选项卡;

在这里插入图片描述

  1. 步骤 2: 获取 Cookies
    刷新知乎首页,在 Network 中随意点击一个 Fetch 项,在右边的 Headers 中找到 Cookie,这段代码就是知乎 Cookie。需要注意的是按下f12之后刷新,这样才能看到很多fetch。

在这里插入图片描述
在这里插入图片描述

本地使用

对于这个下载功能还是比较需要的,知乎查看毕竟不方便(尤其是组会ppt偷懒不想敲latex的时候,部分论文在知乎上有大佬进行解读,很多东西能直接复制自然最方便)

本地使用方法:

  1. 下载GitHub上的项目到本地,然后解压打开
    在这里插入图片描述

  2. 打开main.py文件,拉到最后面然后替换cookie和url,分别是你自己的cookie和文章链接(是不是专栏无所谓)

在这里插入图片描述

  1. 运行然后把没有安装的库一个个安装上,然后就会发现文件夹下多了一个下载好的.md文件
    在这里插入图片描述

但是我发现它对于公式的适配有一点点小问题,主要出在某些公式最后的一个" \ "上面,于是手动进行了修改。

分析一下不难发现,有小部分公式有问题的地方,其实是公式最后有个\没有去掉,这种情况下很简单,只需要对于公式替换部分的代码进行字符串截取,最后一个字符去掉就行。除此之外在标题的部分有一个#导致的问题,这个更直接,用replace(“#”,“#”,-1)就好

这个知乎链接为例,直接爬取的结果就是公式最后都多出一个\导致无法正常显示在markdown中,渲染出的pdf很难看。

  1. 修改1
    于是我对于大约226行的位置进行了如下修改:
        # 将特殊标记替换为 LaTeX 数学公式
        for formula in math_formulas:
            if hexo_uploader:
                content = content.replace(
                    "@@MATH@@", "$" + "{% raw %}" + formula + "{% endraw %}" + "$", 1)
            else:
                # 如果公式中包含 $ 则不再添加 $ 符号
                if formula.find('$') != -1:
                    # 如果公式最后含有\,则将其去掉
                    if formula[-1]=='$' and formula[-2]=="\\":
                        content = content.replace("@@MATH@@", f"{formula[:-1]}"+"$", 1)
                        # print(1)
                    else:
                        content = content.replace("@@MATH@@", f"{formula}", 1)
                        # print(2)
                else:
                    if formula[-1]=="\\":
                        content = content.replace("@@MATH@@", f"${formula[:-1]}$", 1)
                    else:
                        content = content.replace("@@MATH@@", f"${formula}$", 1)

在这里插入图片描述

  1. 修改2
    然后我在content转换为markdown的后面(大约222行)添加了一行来将“#”换成“#”
        # 直接修改 \# 为 #
        content=content.replace("\#","#",-1)    # -1表示替换所有

在这里插入图片描述

写下这篇博客主要是为了自己记录一下这个方法,顺便推荐这个很有用的项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值