获取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 相关文章推荐
Unicode和Python的中文处理
Mar 19 Python
python批量导入数据进Elasticsearch的实例
May 30 Python
python 定义给定初值或长度的list方法
Jun 23 Python
Flask模拟实现CSRF攻击的方法
Jul 24 Python
对Pyhon实现静态变量全局变量的方法详解
Jan 11 Python
python队列Queue的详解
May 10 Python
Django admin model 汉化显示文字的实现方法
Aug 12 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 Python
详解Python IO口多路复用
Jun 17 Python
Python selenium实现断言3种方法解析
Sep 08 Python
python全面解析接口返回数据
Feb 12 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生成便于打印的网页
2006/10/09 PHP
php排序算法(冒泡排序,快速排序)
2012/10/09 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
分享一个超好用的php header下载函数
2014/01/31 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
2016/10/29 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
javascript 数组学习资料收集
2010/04/11 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
基于JavaScript实现带数据验证和复选框的表单提交
2017/08/23 Javascript
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
微信小程序学习总结(四)事件与冒泡实例分析
2020/06/04 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
2020/07/18 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
微信小程序实现列表左右滑动
2020/11/19 Javascript
Python编程入门的一些基本知识
2015/05/13 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
django认证系统实现自定义权限管理的方法
2019/08/28 Python
基于python实现从尾到头打印链表
2019/11/02 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
python中如何设置代码自动提示
2020/07/15 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
AmazeUI导航的示例代码
2020/08/14 HTML / CSS
Ruby如何定义一个类
2012/10/08 面试题
《金色的脚印》教后反思
2014/04/23 职场文书
骨干教师培训方案
2014/05/06 职场文书
法人代表资格证明书
2015/06/18 职场文书
2016教师国培研修感言
2015/12/08 职场文书
详解vue中v-for的key唯一性
2021/05/15 Vue.js
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
linux中nohup和后台运行进程查看及终止
2021/06/24 Python