python html转word文档_Python实现将HTML转换成doc格式文件的方法示例
本文实例讲述了Python实现将HTML转换成doc格式文件的方法。分享给大家供大家参考,具体如下:
网页上的一些文章,因为有格式的原因,它们在网页上的源码都是带有html标签的,用css来进行描述。本文利用HTML Parser 和docx两个模块,对网页进行解析并存储到word文档中。转换出来的格式相对还是有些粗糙,不喜勿喷。话不多说,直接上代码。
class HTMLClient:
#获取html网页源码
def GetPage(self, url):
#user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
user_agent = 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/34.0.1847.116 Chrome/34.0.1847.116 Safari/537.36'
headers = { 'User-Agent' : user_agent }
req = urllib.request.Request(url, None, headers)
try:
res = urllib.request.urlopen(req)
return res.read().decode("utf-8")
except urllib.error.HTTPError as e:
return None
#获取网络图片并保存在程序运行目录下
def GetPic(self, url):
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
req = urllib.request.Request(url, None, headers)
try:
res = urllib.request.urlopen(req)
return res.read()
except urllib.error.HTTPError as e:
return None
html到doc的转换过程中,图片保存和处理是比较麻烦的事情,因为可能涉及到图片格式错误,因此为了保证图片正常运行,应当修改图片添加异常处理流程。
class MYHTMLParser(HTMLParser):
def __init__(self, docfile):
HTMLParser.__init__(self)
self.docfile = docfile
self.doc = Document(docfile)
self.myclient = HTMLClient()
self.text = ''
self.title = False
self.isdescription = False
self.picList=[]
#根据标签头类型决定标签内容的格式
def handle_starttag(self, tag, attrs):
#print "Encountered the beginning of a %s tag" % tag
self.title = False
self.isdescription = False
#
标签说明其中的内容是标题
if re.match(r'h(\d)', tag):
self.title = True
#图片的处理比较复杂,首先需要找到对应的图片的url,然后下载并写入doc中
#下载的图片格式如果有问题,docx模块会报错,因此重新定义异常处理
#图片名称需要记录下来,在文档保存后要自动删除
if tag == "img":
if len(attrs) == 0: pass
else:
for (variable, value) in attrs:
if variable == "src":
#此处图片url类型为[http://url/pic.img!200*200]
#不同网站图片类型不同,因此当作不同处理
picdata = self.myclient.GetPic(value.split('!')[0])
if picdata == None:
pass
else:
pictmp = value.split('/')[-1].split('!')[0]
picfix = value.split('/')[-1].split('!')[-1]
with open(pictmp, 'wb') as pic:
pic.write(bytes(picdata))
pic.close()
try:
if picfix[0:1] == 'c':
self.doc.add_picture(pictmp, width=Inches(4.5))
else:
self.doc.add_picture(pictmp)#, width=Inches(2.25))
except docx.image.exceptions.UnexpectedEndOfFileError as e:
print(e)
self.picList.append(pictmp)
#javascript脚本
if tag == 'script':
self.isdescription = True
def handle_data(self, data):
if self.title == True:
if self.text != '':
self.doc.add_paragraph(self.text)
self.text = ''
self.doc.add_heading(data, level=2)
if self.isdescription == False:
self.text += data
def handle_endtag(self, tag):
#if tag == 'br' or tag == 'p' or tag == 'div':
if self.text != '':
self.doc.add_paragraph(self.text)
self.text = ''
def complete(self, html):
self.feed(html)
self.doc.save(self.docfile)
for item in self.picList:
if os.path.exists(item):
os.remove(item)
希望本文所述对大家Python程序设计有所帮助。
python html转word文档_Python实现将HTML转换成doc格式文件的方法示例相关推荐
- python将源代码转换成在html可显示的格式,Python实现将HTML转换成doc格式文件的方法示例...
Python实现将HTML转换成doc格式文件的方法示例 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: Python实现将HTML转换成doc格式文件的方法示例. ...
- python修改文件格式为jpg_python将.ppm格式图片转换成.jpg格式文件的方法
python将.ppm格式图片转换成.jpg格式文件的方法 将.ppm格式的图片转换成.jpg格式的图像,除了通过软件转换,还可以使用python脚本直接转换,so easy!!! from PIL ...
- python 自动生成word文档_python实现的生成word文档功能示例
本文实例讲述了python实现的生成word文档功能.分享给大家供大家参考,具体如下: 每月1次的测试费用报销,需要做一个文档.干脆花点时间写个程序吧. # -*- coding: utf-8 -*- ...
- python批量提取word指定内容_使用python批量读取word文档并整理关键信息到excel表格的实例...
目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验记录并分享 就像在CSDN写博客一样 虽然刚刚起步 但考虑到后面此类经验记录的资料会越来越多 所以一开始就要做好模板设计(如下 ...
- 办公室小姐姐的福利!用Python批量提取word文档中的表格和图片内容
点上方"菜鸟学Python",选择"星标" 第491篇原创干货,第一时间送达 最近有许多小伙伴想要一些自动化办公的福利小程序,今天就满足大家的需求.日常的办公过 ...
- python新建word文档_使用Python 自动生成 Word 文档的教程
当然要用第三方库啦 :) 使用以下命令安装: pip install python-docx 使用该库的基本步骤为: 1.建立一个文档对象(可自动使用默认模板建立,也可以使用已有文件). 2.设置文档 ...
- python自动生成和读取word_使用Python自动生成Word文档的教程
当然要用第三方库啦 :) 使用以下命令安装: pip install python-docx 使用该库的基本步骤为: 1.建立一个文档对象(可自动使用默认模板建立,也可以使用已有文件). 2.设置文档 ...
- python实现生成word文档并转为pdf
python实现生成word文档,格式转为pdf 使用的是python-docx模块,在生成word文档后转为pdf格式是使用的是docx2pdf中的convert(使用convert转换时,要先创建 ...
- Python动态修改Word文档内容,保留格式样式,并批量生成PDF
Python动态修改Word文档内容,保留格式样式,并批量生成PDF 前言 一.需要安装的库 二.核心逻辑-替换 前言 假如你有一个Word模版文档,要在里面填写人员信息,但人员有成百上千个,手动填起 ...
最新文章
- Unity插件之NGUI学习(8)—— Table和NGUI尺寸转换为世界坐标系尺寸
- 如何识别真正的程序员
- android动态获取输入值,Android实现动态自动匹配输入内容
- bootstrapt 表格自适应_一起聊B端设计 - 如何设计表格?
- LeetCode:验证回文串【125】
- hbase put 写入数据慢_HBase运维 | HBase 疑难杂症诊治
- 服务器显示RL011,台达伺服驱动器维修之AL011故障原因和方法
- 【接口时序】8、DDR3驱动原理与FPGA实现(一、DDR的基本原理)
- 如何删除电脑里的android驱动程序,驱动安装失败 如何手动清除旧驱动程序
- Macbook pro 2015 13寸丐版更换512G固态流程记录
- 163的邮箱怎么注册?163的邮箱格式怎么填写?
- Java笔记 - 黑马程序员_07(多线程,线程同步,线程池,网络编程入门,UDP通信原理,TCP通信原理,commons-io工具类)
- AI上推荐 之 NeuralCF与PNN模型(改变特征交叉方式)
- 又java基础学php多久_php自学需要多久?
- 【财经期刊FM-Radio|2021年03月01日】
- 玩转NVIDIA Jetson AGX Xavier--- 中文用户手册
- 汇编程序语言 输入数字n和n个数字并对n个数字排序(带注释)
- 家里WiFi慢?几招帮你解决
- Livy 安装使用说明
- Google的霸道:我就是要独享安卓源代码!