Python实现将HTML转换成doc格式文件的方法示例

来源:中文源码网    浏览: 次    日期:2018年9月2日

【下载文档:  Python实现将HTML转换成doc格式文件的方法示例.txt 】

(友情提示:右键点上行txt文档名->目标另存为)

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 Nonehtml到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编码操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

亲,试试微信扫码分享本页! *^_^*

python将源代码转换成在html可显示的格式,Python实现将HTML转换成doc格式文件的方法示例...相关推荐

  1. python 读取pdf cid_python使用pdfminer解析pdf文件的方法示例

    最近要做个从 pdf 文件中抽取文本内容的工具,大概查了一下 python 里可以使用 pdfminer 来实现.下面就看看怎样使用吧. PDFMiner是一个可以从PDF文档中提取信息的工具.与其他 ...

  2. python将字典写入csv_Python如何把字典写入到CSV文件的方法示例

    在实际数据分析过程中,我们分析用Python来处理数据(海量的数据),我们都是把这个数据转换为Python的对象的,比如最为常见的字典. 比如现在有几十万份数据(当然一般这么大的数据,会用到数据库的概 ...

  3. python html转word文档_Python实现将HTML转换成doc格式文件的方法示例

    本文实例讲述了Python实现将HTML转换成doc格式文件的方法.分享给大家供大家参考,具体如下: 网页上的一些文章,因为有格式的原因,它们在网页上的源码都是带有html标签的,用css来进行描述. ...

  4. python合并文件夹下的文件_Python实现合并同一个文件夹下所有PDF文件的方法示例...

    本文实例讲述了Python实现合并同一个文件夹下所有PDF文件的方法.分享给大家供大家参考,具体如下: 一.需求说明 下载了网易云课堂的吴恩达免费的深度学习的pdf文档,但是每一节是一个pdf,我把这 ...

  5. python抓取网页内容到excel_Python实现抓取网页生成Excel文件的方法示例

    本文实例讲述了Python实现抓取网页生成Excel文件的方法.分享给大家供大家参考,具体如下: Python抓网页,主要用到了PyQuery,这个跟jQuery用法一样,超级给力 示例代码如下: # ...

  6. python类中的属性分为类属性和实例属性两种_python中类和实例如何绑定属性与方法示例详解...

    前言 python类与实例的方法的调用中觉得云里雾里,思考之后将自己的想法记录下,一来加深自己理解,巩固自己记忆,而来帮助一些想要学习python的朋友理解这门抽象的语言,由于Python是动态语言, ...

  7. python读取多个文件夹下所有txt_Python实现合并同一个文件夹下所有txt文件的方法示例...

    本文实例讲述了Python实现合并同一个文件夹下所有txt文件的方法.分享给大家供大家参考,具体如下: 一.需求分析 合并一个文件夹下所有txt文件 二.合并效果 三.python实现代码 # -*- ...

  8. python合并文件夹下的文件_Python实现合并同一个文件夹下所有txt文件的方法示例...

    本文实例讲述了Python实现合并同一个文件夹下所有txt文件的方法.分享给大家供大家参考,具体如下: 一.需求分析 合并一个文件夹下所有txt文件 二.合并效果 三.python实现代码 # -*- ...

  9. python获得屏幕分辨率多少合适_获取显示计数和Python中的每个显示器的分辨率不xrandr...

    我运行Ubuntu和我想连接的显示器,其当前的分辨率的数量,如果可能的话,它们相对于彼此的位置. 因为我不喜欢解析xrandr的控制台输出 - 至少不是如果我没有 - 我想这样做与Python-XLi ...

最新文章

  1. pip快速下载安装python 模块module
  2. error: xxxx.o: Relocations in generic ELF (EM: 3)解决办法
  3. p20适配鸿蒙系统,适配鸿蒙OS,必须要升级到EMUI 11?最新机型升级名单公布
  4. python_threading模块实现多线程详解(转)
  5. 世界坐标系,相机坐标系和图像坐标系的转换(Python)
  6. Qt对话框的事件循环实例分析
  7. 记录一次Oracle注入绕waf
  8. no segments* file found in SimpleFSDirectory问题总结
  9. manjaro配置zsh和oh-my-zsh
  10. vs2013创建c++控制台应用程序
  11. Hibernate:1对1关系总结。
  12. jedate选择一年范围日期插件
  13. python图像边缘检测_Python进行图片水平边缘检测prewitt算子法
  14. 统计遗传学:第五章,多基因评分PGS
  15. 预装WIN8的电脑是GPT分区模式,无法安装WIN7
  16. 四分位数的数学计算以及使用pandas计算
  17. 《JOEL说软件》-- Jole Spolsky
  18. 03 学生免费注册Pycharm专业版
  19. 【Linux】gcc编译器下载与手动安装
  20. 【苦练基本功2】求最小公倍数

热门文章

  1. 家用平价洗地机哪款好?国产性价比高的品牌
  2. 血色先锋队(BFS)
  3. 基于平面的约束2D激光雷达和相机的联合标定(2D Laser and Camera Calibration )原理及项目代码具体使用——旷视
  4. Sparrow——基础搭建
  5. 正则表达式环视否定例子
  6. valueAnimator 属性动画
  7. python 股票指标库talib_Python进阶量化交易专栏场外篇19-建立基于TA-Lib的指标库
  8. ZZULI-1184 平面点排序(二)(结构体专题)
  9. 企业财务制度二--(三)所有者权益类科目 3131 本年利润(转载)
  10. 删除小红点\u200b的