如果在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 BeautifulSoupcsdn_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 = 1if sys.argv[2].find('NOTE') >= 0:noteflag = 1if len(sys.argv) > 3:if sys.argv[3].find('SHIFT') >= 0:ctrlflag = 1if 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 = titlexmltext = 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 = tempstrelse:title = sys.argv[1]if title[0] == '#':anchorstr = titletspsendwindowkey(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 = tempstrtitle = 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
#============================================================
如果在CSDN博文编辑状态下获得博文最终网络链接?相关推荐
- android tableview实现多选功能,iOS开发UI篇-tableView在编辑状态下的批量操作(多选)...
先看下效果图 直接上代码 #import "MyController.h" @interface MyController () { UIButton *button; } @pr ...
- unity editor 编辑器插件制作基础:五、物体在Scene窗口中编辑状态下的辅助显示,以及控制功能扩展OnDrawGizmos GizmoType
一 说明 该功能只能在编辑状态下运行,并只能在scene窗口中显示. 脚本必须继承MonoBehaviour ,并且引入UnityEngine和UnityEditor库 可以选择相关方法,在鼠标选择父 ...
- tableview 编辑状态下,UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert 多选的时候,替换圆圈图片
打开编辑模式,使得tableview处于选择状态 [_tableView setEditing:YES animated:NO] - (UITableViewCellEditingStyle)tabl ...
- dateTimePicker编辑状态下,取值不正确的问题
当对dateTimePicker进行编辑,回车,调用函数处理dateTimePicker的value值时,其取值结果是你编辑之前的值,而不是你编辑后的值,虽然dateTimePicker.text的值 ...
- vue结合百度地图绘制工具遇到的问题及解决方案(多边形编辑状态下形状显示不全、marker点添加事件无效)
vue如何引入百度地图绘制工具 百度地图绘制工具示例 http://developer.baidu.com/map/jsdemo.htm#f0_7 百度地图绘制工具api文档 http://api.m ...
- unity3d编辑器界面扩展,编辑状态下显示选择对象的所有脚本组件代码内容
转载自:http://blog.csdn.net/andyhebear/article/details/47833383 using UnityEngine; using UnityEditor; u ...
- android 不可编辑 复制,Android的EditText不可编辑状态下的长按复制
好久没更博.之前一段时间新模块开发..太忙太忙. 今天写的是刚新增的需求,用户要求可以复制一些不可编辑的EditText里面的内容,这个问题网上有几种解决办法,一个是自定义控件中重写getDefaul ...
- 计算机广播状态下操作,二,操作题:1
二,操作题:1 (2008-11-19 13:29:23) 标签: 杂谈 二,操作题: 操作 1 题目: 打开WINDOWS 98的资源管理器,按顺序进行如下操作: 1.在 A 盘根目录下的NJDD目 ...
- 如何在Release状态下进行调试
1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态.C/C++标签中的Category选General, ...
最新文章
- 自然语言模型算法太杂乱?国产统一 AI 开源框架来了
- 【转载】谁记录了mysql error log中的超长信息
- 存clob为空的值_oracle clob 存储空间
- vue3+TypeScript封装echarts5组件
- 【渝粤教育】国家开放大学2018年春季 0283-21T广告创意与表现(二) 参考试题
- Spring容器创建流程(2)创建beanFactory,加载BeanDefinition
- 102. 二叉树的层次遍历
- 如何设置iPhone的手机铃声?【来自星星的你】
- R|ggplot2(七)|自定义主题
- 深度解析MySQL启动时报“The server quit without updating PID file”错误的原因
- 如何html设置下载的字体呢?
- 12级软件测试课程博客汇总
- 31道Java面试题,java冒泡排序详解
- css中字体下划线样式,css下划线 浅谈css自定义下划线
- ZigBee的发展也有“碎片化”zigbee模块
- 武大计算机保研北大,17名北大毕业生保研到武大?网友说亏大了,其实这些学生赚大了!...
- 西游记中观世音菩萨的三个箍
- ubuntu 钉钉 输入法不能输入中文,只能输入英文。
- SmartNavigation苗条版ClientNavigation增肥
- LabVIEW Arduino TCP/IP远程智能家居系统(项目篇—5)