获取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内置函数dir详解
Apr 14 Python
简单解析Django框架中的表单验证
Jul 17 Python
python与sqlite3实现解密chrome cookie实例代码
Jan 20 Python
Python编程深度学习绘图库之matplotlib
Dec 28 Python
python从list列表中选出一个数和其对应的坐标方法
Jul 20 Python
Python Django 前后端分离 API的方法
Aug 28 Python
Python numpy.zero() 初始化矩阵实例
Nov 27 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
Mar 23 Python
详解PyQt5信号与槽的几种高级玩法
Mar 24 Python
python中scipy.stats产生随机数实例讲解
Feb 19 Python
如何利用Matlab制作一款真正的拼图小游戏
May 11 Python
宝塔更新Python及Flask项目的部署
Apr 11 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侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
2009/10/15 PHP
php数组添加元素方法小结
2014/12/20 PHP
php实现字符串翻转的方法
2015/03/27 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
jquery.ajax之beforeSend方法使用介绍
2014/12/08 Javascript
深入浅出讲解ES6的解构
2016/08/03 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
JavaScript 自定义事件之我见
2017/09/25 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
nodejs 日志模块winston的使用方法
2018/05/02 NodeJs
教你如何用node连接redis的示例代码
2018/07/12 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
2020/02/12 Javascript
原生JS与JQ获取元素的区别详解
2020/02/13 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
Python正则表达式匹配中文用法示例
2017/01/17 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
法国家具及室内配件店:home24
2017/01/21 全球购物
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
工会工作先进事迹
2014/08/18 职场文书
同志主要表现材料
2014/08/21 职场文书
python 定义函数 返回值只取其中一个的实现
2021/05/21 Python
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android