获取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数据结构之二叉树的建立实例
Apr 29 Python
Python下载指定页面上图片的方法
May 12 Python
python使用psutil模块获取系统状态
Aug 27 Python
Python 备份程序代码实现
Mar 06 Python
python引入导入自定义模块和外部文件的实例
Jul 24 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
如何基于Python批量下载音乐
Nov 11 Python
python 实现list或string按指定分段
Dec 25 Python
Python跑循环时内存泄露的解决方法
Jan 13 Python
浅谈图像处理中掩膜(mask)的意义
Feb 19 Python
解决python 虚拟环境删除包无法加载的问题
Jul 13 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 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
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
js判断浏览器的比较全的代码
2007/02/13 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
Vue.js 和 MVVM 的注意事项
2016/11/07 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
webpack打包单页面如何引用的js
2017/06/07 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
Python实现二分查找算法实例
2015/05/26 Python
python采集百度百科的方法
2015/06/05 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
python实现邮件自动发送
2019/08/10 Python
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
医学生自荐信范文
2013/12/03 职场文书
毕业生自荐书
2013/12/18 职场文书
开办化妆品公司创业计划书
2013/12/26 职场文书
写给老师的表扬信
2014/01/21 职场文书
《月迹》教学反思
2014/02/19 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
初一学生期末评语
2014/04/24 职场文书
人事经理岗位职责
2014/04/28 职场文书
酒店节能降耗方案
2014/05/08 职场文书
2014高考励志标语
2014/06/05 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
先进个人主要事迹怎么写
2015/11/04 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
小学运动会开幕词
2016/03/04 职场文书
全新239军机修复记
2022/04/05 无线电