如果在CSDN博文编辑状态下获得博文最终网络链接?

■ 简介


为了便于编辑多个相互之间有交叉引用的博文,需要能够在CSND博文编辑状态下就能够获得各个博文最后引用的链接。这种方式适合于:

  • 将一个大型的博文拆解成很多小的博文;
  • 在博文之间能够相互进行索引;

在以前都需要将CSDN的博文保存之后,重新通过“查看”打开,才能够在浏览器的地址栏获得博文的最终的链接地址,这样操作稍微麻烦一些。下面通过实验给出编辑中博文的地址和最后引用点值之间的关系。

01编辑状态下的博文地址


1.地址之间的联系

在打开Markdown编辑器之后,最初的网页的地址为:

https://editor.csdn.net/md/
在输入博文题目,以及一小段内容之后,电机“**保存草稿**”之后,博文的地址栏的内容就变成了:
https://editor.csdn.net/md?articleId=107375420
如果将博文保存,然后通过“**查看**”再次浏览该博文时,浏览器的地址变成了:
https://zhuoqing.blog.csdn.net/article/details/107375420

此时可以看到,最终的浏览地址与在编辑状态下的地址之间的关系:

将编辑状态下的地址后面articalid=" 之后的数字字符串替换成: https://zhuoqing.blog.csdn/net/artical/details/

2.修改url2link

在原来的PYTHON命令 url2link 中增加 自动处理部分。可以碰到articalid=字符串自动进行替换。

#------------------------------------------------------------
findstr = '?articleId='
idid = urlstr.find(findstr)

if idid >= 0:
    urlstr = 'https://zhuoqing.blog.csdn.net/article/details/' + urlstr[idid+len(findstr):]

※ 结论


通过音源在编辑状态下的博文地址,可以扩展博文之间的交叉引用,提高编辑的效率。

通过修改 url2link 命令,使其能够自动完成 articalid= 的字符串替换过程。

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# URL2LINK.PY                  -- by Dr. ZhuoQing 2020-02-09
#
# Note:
#============================================================

from head import *
import requests

#------------------------------------------------------------
from bs4 import BeautifulSoup

csdn_title = '写文章-CSDN博客'

urlstr = clipboard.paste()
noteflag = 0

#printf(urlstr)

#------------------------------------------------------------
if urlstr.find('http') < 0:
    if len(sys.argv) < 2:
        printf('url2link url\a')
        exit()

    urlstr = sys.argv[1]

    if urlstr.find('http') < 0:
        printf('url2link url\a')
        exit()

    keyread = tspread()
    ctrlflag = 0;
    if len(sys.argv) > 2:
        if sys.argv[2].find('SHIFT') >= 0:
            ctrlflag = 1

        if sys.argv[2].find('NOTE') >= 0:
            noteflag = 1

    if len(sys.argv) > 3:
        if sys.argv[3].find('SHIFT') >= 0:
            ctrlflag = 1

        if sys.argv[3].find('NOTE') >= 0: noteflag = 1

    #--------------------------------------------------------
    if keyread[7] != 0 or ctrlflag != 0:

        prompt = 'Py&thon Input:'
        if ctrlflag != 0:
            prompt = 'Python &Input >>:'

        oldtitle = ''

        if keyread[8] != 0:
            xmltext = requests.get(urlstr)
            soup = BeautifulSoup(xmltext.text, 'lxml')
            oldtitle = soup.head.title.string.split('_')[0]
        else:
            tspsendwindowkey(csdn_title, 'c', control=1)
            oldtitle = clipboard.paste()

        title = tspinputline(string=oldtitle, hint=urlstr, title=prompt).strip(' ')

        if len(title) == 0:
            xmltext = requests.get(urlstr)
            soup = BeautifulSoup(xmltext.text, 'lxml')
            title = soup.head.title.string.split('_')[0]
#            printff(title)
        else:
            if title[0] == '#':
                anchorstr = title
                xmltext = requests.get(urlstr)
                soup = BeautifulSoup(xmltext.text, 'lxml')
                title = soup.head.title.string.split('_')[0]+anchorstr

#                printff(title)

    else:
        xmltext = requests.get(urlstr)
        soup = BeautifulSoup(xmltext.text, 'lxml')
        title = soup.head.title.string.split('_')[0]

#------------------------------------------------------------
else:
    if len(sys.argv) < 2:
        tspsendwindowkey(csdn_title, 'c', control=1)
        tempstr = clipboard.paste()

        if len(tempstr) == 0:
            xmltext = requests.get(urlstr)
            soup = BeautifulSoup(xmltext.text, 'lxml')
            title = soup.head.title.string.split('_')[0]
#            printff(title)
        else: title = tempstr

    else:
        title = sys.argv[1]

        if title[0] == '#':
            anchorstr = title

            tspsendwindowkey(csdn_title, 'c', control=1)
            tempstr = clipboard.paste()

            if len(tempstr) == 0:
                xmltext = requests.get(urlstr)
                soup = BeautifulSoup(xmltext.text, 'lxml')
                title = soup.head.title.string.split('_')[0]
#                printff(title)
            else: title = tempstr

            title = title+anchorstr

#------------------------------------------------------------
headstr = ''
if title[0] == '.':
    title = title[1:]
    headstr = '- [ ]'

if title[0] == ',':
    title = title[1:]
    headstr = '- [x]'

#------------------------------------------------------------
findstr = '?articleId='
idid = urlstr.find(findstr)

if idid >= 0:
    urlstr = 'https://zhuoqing.blog.csdn.net/article/details/' + urlstr[idid+len(findstr):]

#------------------------------------------------------------
titlesharp = title.find('#')
if titlesharp >= 0:
    urlstr = urlstr + title[titlesharp:]
    title = title[0:titlesharp]

#------------------------------------------------------------
if noteflag != 0:
    insertstring = '%s [**``%s``**](%s) '%(headstr, title, urlstr)
else:
    insertstring = '%s [**%s**](%s) '%(headstr, title, urlstr)

clipboard.copy(insertstring)
#printf(insertstring)

tspsendwindowkey(csdn_title, 'v', control=1)

clipboard.copy('')
tspfocuswindow(csdn_title)

#------------------------------------------------------------
#        END OF FILE : URL2LINK.PY
#============================================================

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/107375420
今日推荐