首页 > 编程语言 >python 实现博客园文章导出为word文档

python 实现博客园文章导出为word文档

时间:2024-06-19 21:22:15浏览次数:23  
标签:blog word title python 博客园 content url article 浏览器

确保安装了以下Python库:

pip install requests beautifulsoup4 python-doc

 


import requests from bs4 import BeautifulSoup from docx import Document from docx.shared import Pt from docx.oxml.ns import qn # 函数:获取博客园文章内容 def get_blog_article(url): headers = { 'User-Agent': 'Your User Agent' # 替换为你的浏览器User-Agent } response = requests.get(url, headers=headers) if response.status_code == 200: return response.text else: print(f"Failed to retrieve article. Status code: {response.status_code}") return None # 函数:解析HTML内容,提取标题和正文 def parse_article(html): soup = BeautifulSoup(html, 'html.parser') title = soup.find('a', id='cb_post_title_url').text.strip() content_tag = soup.find('div', id='cnblogs_post_body') paragraphs = content_tag.find_all('p') content = '\n'.join([p.get_text(strip=True) for p in paragraphs]) return title, content # 函数:生成Word文档 def create_word_document(title, content, filename): doc = Document() # 设置文档标题 doc.add_heading(title, level=1).alignment = 1 # 标题居中 # 添加正文内容 paragraph = doc.add_paragraph(content) # 设置正文字体样式 run = paragraph.add_run() run.font.size = Pt(12) run.font.name = '宋体' run._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体') # 设置中文字体 # 保存文档 doc.save(filename) print(f"Word document '{filename}' created successfully.") # 主函数 if __name__ == "__main__": # 示例博客园文章链接 blog_url = 'https://www.cnblogs.com/your-article-url' # 获取文章内容 html_content = get_blog_article(blog_url) if html_content: # 解析文章 article_title, article_content = parse_article(html_content) # 生成Word文档 output_filename = 'blog_article.docx' create_word_document(article_title, article_content, output_filename) else: print("Failed to fetch article content.")

 

 主要注意的是:

1.'User-Agent': 'Your User Agent'  # 替换为你的浏览器User-Agent
打开任意浏览器,在网址上输入about://version,按回车。(即可查看你自己浏览器的用户代理)

一些示例用户代理字符串:

  • Chrome浏览器:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36
  • Firefox浏览器:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0
  • Safari浏览器:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.3 Safari/605.1.15

 2.

 # 示例博客园文章链接
    blog_url = 'https://www.cnblogs.com/your-article-url'
示例:我的其中一篇博客url:https://www.cnblogs.com/2022-yang/p/18252952
 3.
 # 生成Word文档
output_filename = 'blog_article.docx'
blog_article.docx为word文档名称

唯一的就是只能一篇一篇的导。

标签:blog,word,title,python,博客园,content,url,article,浏览器
From: https://www.cnblogs.com/2022-yang/p/18257420

相关文章

  • python4
    (三)、设计并实现计算不同职称的教师工资【题目描述】设计教师接口,该接口包含教师工资计算方法。应用(一)中的高校人员信息包,设计不同职称的教师类:教授,副教授,讲师,教师的基本信息包括姓名、性别、出生年月、职称、课时工作量等属性。注意学校对教师每月工资的计算规定如下:固定工资+课......
  • 【深度学习驱动流体力学】计算流体力学openfoam-paraview与python3交互
    目的1:配置ParaView中的PythonShell和Python交互环境ParaView提供了强大的Python接口,允许用户通过Python脚本来控制和操作其可视化功能。在ParaView中,可以通过View>PythonShell菜单打开PythonShell窗口,用于执行Python代码。要确保正确配置Python......
  • 高效编程的艺术:IPython最基础技巧指南
    #IPython使用技巧整理:提升你的Python编程效率##引言**IPython**不仅仅是一个交互式Python解释器,它是一个功能强大的工具,能够显著提高你的编程效率和体验。本文将深入探讨IPython的高级使用技巧,帮助你充分利用这一工具的强大功能。##快速入门-**启动IPython**:在命令行......
  • 轻松玩转Python文件操作:移动、删除
    哈喽,大家好,我是木头左!Python文件操作基础在处理计算机文件时,经常需要执行如移动和删除等基本操作。Python提供了一些内置的库来帮助完成这些任务,其中最常用的就是os模块和shutil模块。这两个模块包含了许多与文件和目录操作相关的函数。理解os模块os模块是Python中用于与操......
  • 用Python的pynput库追踪每一次点击和滚动
    哈喽,大家好,我是木头左!在编程的世界里,有时需要洞察用户的行为模式,尤其是在游戏开发、用户界面设计或者行为分析等领域。一个常见而有趣的任务是追踪鼠标的活动,比如左键点击、右键点击和滚轮滚动。今天,将探索如何使用Python的pynput库来实现这一功能,从而开启对用户交互行为的洞察......
  • Python 模块
    Python模块模块的基本概念定义在Python中,模块是一个包含Python定义和语句的文件,文件名通常是模块名加上.py的后缀。模块是组织Python代码的一种方式,它允许我们将相关的函数、类和变量等组织在一起,以便在其他程序中重复使用。在代码组织中的作用代码复用:模块使得开发者可以......
  • python爬虫之aiohttp多任务异步爬虫
    python爬虫之aiohttp多任务异步爬虫爬取的flash服务如下:fromflaskimportFlaskimporttimeapp=Flask(__name__)@app.route('/bobo')defindex_bobo():time.sleep(2)return'Hellobobo'@app.route('/jay')defindex_jay():time.......
  • Python 迭代器与生成器
    迭代器迭代器(Iterator)是一个可以记住遍历的位置的对象,该对象包含值的可计数数字,在Python当中:迭代器是实现迭代器协议的对象,它包含方法__iter__()和__next__()__iter__()方法作用:返回迭代器对象本身__next__()方法作用:返回迭代器的下一个元素,如果没有元素了则就会触发Sto......
  • 【任务分配】基于粒子群算法多无人机任务分配附python代码
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • Python武器库 - 科研中常用的python图像操作 - 图像显示
    应用场景:在科研中,使用python(opencv)对图像进行操作后,通常需要实时查看操作结果并实施调整,而每次都在文件夹中打开查看是很麻烦的,这就需要我们能够直接通过代码对图像进行可视化展示。这里主要用到cv2中的**imshow(),waitKey()和destroyWindow()/destroyAllWindows()**函数,......