获取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常用正则表达式符号浅析
Aug 13 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
Apr 23 Python
Windows下安装python2和python3多版本教程
Mar 30 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
May 31 Python
python执行使用shell命令方法分享
Nov 08 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
python写日志文件操作类与应用示例
Jul 01 Python
python循环嵌套的多种使用方法解析
Nov 29 Python
Django 批量插入数据的实现方法
Jan 12 Python
python实现飞船游戏的纵向移动
Apr 24 Python
Python命名空间及作用域原理实例解析
Aug 12 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 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和AJAX创建RSS聚合器的代码
2007/03/13 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
JavaScript类和继承 prototype属性
2010/09/03 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
详解python基础之while循环及if判断
2017/08/24 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
python实现求特征选择的信息增益
2018/12/18 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
Python实现某论坛自动签到功能
2019/08/20 Python
Django接收自定义http header过程详解
2019/08/23 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
保险经纪人求职信
2014/03/11 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
《恐龙》教学反思
2014/04/27 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
Python获取百度热搜的完整代码
2021/04/07 Python
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers