获取CSDN文章内容并转换为markdown文本的python


Posted in Python onSeptember 06, 2020

自己写的小工具,可以直接获取csdn文章并转换为markdown格式

效果图

获取CSDN文章内容并转换为markdown文本的python

核心代码

from PySide2.QtWidgets import QApplication,QMainWindow,QPushButton,QPlainTextEdit,QMessageBox
import re
import parsel
import tomd
import requests
class CSDN():
  def __init__(self):
    self.windows = QMainWindow()
    self.windows.resize(450, 300)
    self.windows.setWindowTitle("轻松获取csdn文章--by tansty")
    self.setup_ui()
    self.set_connect()
  def set_connect(self):
    #设置建立联系
    self.button.clicked.connect(self.spider_csdn)
  def setup_ui(self):
    #设置ui界面的建立
    self.button = QPushButton(self.windows)
    self.button.resize(100, 100)
    self.button.move(150, 150)
    self.button.setText("获取文章")
    self.text = QPlainTextEdit(self.windows)
    self.text.setPlaceholderText("请输入需要获取文章的链接")
    self.text.resize(450, 100)
  def spider_csdn(self):
    # 目标文章的链接
    title_url=self.text.toPlainText()
    MessageBox = QMessageBox(self.windows)
    if not title_url:
      MessageBox.critical(self.windows, "错误", "请输入网址")
      return
    head={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36 Edg/84.0.522.52"
    }
    html=requests.get(url=title_url,headers=head).text
    page=parsel.Selector(html)
    #创建解释器
    title=page.css(".title-article::text").get()
    res = re.compile("[^\u4e00-\u9fa5^a-z^A-Z^0-9]")
    restr = ''
    res.sub(restr, title)
    content=page.css("article").get()
    content=re.sub("<a.*?a>","",content)
    content = re.sub("<br>", "", content)
    texts=tomd.Tomd(content).markdown
    #转换为markdown 文件
    with open(title+".md",mode="w",encoding="utf-8") as f:
      f.write("#"+title)
      f.write(texts)
      MessageBox.information(self.windows,"正确","获取文章完成")
if __name__ == '__main__':
  app = QApplication()
  csdn=CSDN()
  csdn.windows.show()
  app.exec_()

文件打包下载 链接: https://pan.baidu.com/s/1R6RcrDagwf1vWzmRCBja4w 提取码: ug6n

Python 相关文章推荐
python getopt 参数处理小示例
Jun 09 Python
python logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
与Django结合利用模型对上传图片预测的实例详解
Aug 07 Python
pytorch中tensor张量数据类型的转化方式
Dec 31 Python
Python实现桌面翻译工具【新手必学】
Feb 12 Python
keras .h5转移动端的.tflite文件实现方式
May 25 Python
python读取xml文件方法解析
Aug 04 Python
python excel多行合并的方法
Dec 09 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
Feb 25 Python
pytorch 使用半精度模型部署的操作
May 24 Python
golang特有程序结构入门教程
Jun 02 Python
浅谈Python描述数据结构之KMP篇
Sep 06 #Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 #Python
Python中实现一行拆多行和多行并一行的示例代码
Sep 06 #Python
Pytest单元测试框架如何实现参数化
Sep 05 #Python
Python实例方法、类方法、静态方法区别详解
Sep 05 #Python
Python装饰器如何实现修复过程解析
Sep 05 #Python
Python JSON常用编解码方法代码实例
Sep 05 #Python
You might like
Smarty中的注释和截断功能介绍
2015/04/09 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
node.js中的fs.fchmod方法使用说明
2014/12/16 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
JavaScript实现单点登录的示例
2020/09/23 Javascript
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
python操作MySQL数据库的方法分享
2012/05/29 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
如何使用pandas读取txt文件中指定的列(有无标题)
2020/03/05 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
什么是数据抽象
2016/11/26 面试题
营销专业应届生求职信
2013/11/26 职场文书
店长助理岗位职责
2013/12/13 职场文书
法学专业毕业生自荐信范文
2013/12/18 职场文书
大学生党课思想汇报
2013/12/29 职场文书
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
诚信考试倡议书
2014/04/15 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers
Java使用Unsafe类的示例详解
2021/09/25 Java/Android
MySQL transaction事务安全示例讲解
2022/06/21 MySQL
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android