获取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定时检查启动某个exe程序适合检测exe是否挂了
Jan 21 Python
在Python上基于Markov链生成伪随机文本的教程
Apr 17 Python
python中as用法实例分析
Apr 30 Python
python实现解数独程序代码
Apr 12 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 Python
pygame实现俄罗斯方块游戏(AI篇2)
Oct 29 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
Feb 10 Python
python设置代理和添加镜像源的方法
Feb 14 Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 Python
浅谈python出错时traceback的解读
Jul 15 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
Feb 20 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
php date与gmdate的获取日期的区别
2010/02/08 PHP
PHP 代码规范小结
2012/03/08 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
JavaScript中的事件处理
2008/01/16 Javascript
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
两个Javascript小tip资料
2010/11/23 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
2018/08/25 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
js实现轮播图特效
2020/05/28 Javascript
python的三目运算符和not in运算符使用示例
2014/03/03 Python
Python读写文件方法总结
2015/06/09 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
python获取Pandas列名的几种方法
2019/08/07 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
Tensorflow 实现释放内存
2020/02/03 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
领导干部作风建设自查报告
2014/10/23 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
2015年英语教学工作总结
2015/05/25 职场文书
投资入股协议书
2016/03/22 职场文书
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL
linux目录管理方法介绍
2022/06/01 Servers