前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python网络爬虫文档读取-微软Word文档和.docx

python网络爬虫文档读取-微软Word文档和.docx

作者头像
用户7886150
修改于 2021-01-15 09:04:15
修改于 2021-01-15 09:04:15
1.5K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: 通过Python-Docx模块在Python中读写MS Word文件

大约在2008年以前,微软Office产品中的Word用.doc文件格式。这种二进制格式很难读取,而且能够读取word格式软件很少。为了跟上时代,让自己的软件能够符合主流软件的标准,微软决定使用Open Office的类XML格式标准,此后新版Word文件才与其他文字处理软件兼容,这个格式就是.docx。 

  不过Python对这种Google Docs,Open Office和Microsoft Office都在使用的.docx格式支持还不够好。虽然有一个python-docx库,但是只支持创建新文档和读取一些基本的文件数据,如文件大小和文件标题,不支持正文读取。如果想要从Microsoft Office文件的正文内容,我们需要自己动手找方法: 

  第一步是从文件读取XML: 

 from zipfile import ZipFile

from urllib.request import urlopen

from io import BytesIO

wordFile=urlopen("http://pythonscraping.com/pages/AWordDocument.docx").read()

wordFile=BytesIO(wordFile)

document=ZipFile(wordFile)

xml_content=document.read('word/document.xml')

print(xml_content.decode('UTF-8'))

 程序执行结果如下: 

  通过执行结果发现,确实包含了大量的信息,但是都被隐藏在XML里面,好在文档的所有正文内容都包含在<w:t>标签里面。标题的内容也是如下,这样就比较好处理了。改进后的程序代码如下: 

 from zipfile import ZipFile

from urllib.request import urlopen

from io import BytesIO

from bs4 import BeautifulSoup

wordFile=urlopen("http://pythonscraping.com/pages/AWordDocument.docx").read()

wordFile=BytesIO(wordFile)

document=ZipFile(wordFile)

xml_content=document.read('word/document.xml')

wordObj=BeautifulSoup(xml_content.decode('utf-8'),"xml")

textString=wordObj.findAll("w:t")

for textElem in textString:

    print(textElem.text)

     在此处需要注意一个问题,因为此处是先将word文档转换为xml文档,所以在使用BeautifulSoup进行文档内容解析的时候,需要执行解析器的xml,这样findAll才能正常执行。不可以不指定。 

执行结果如下: 

你会看到这里docx单独一行,这是因为在原始的XML里,它是由<w:proofErr w:type="spellStart"/>标签包围的。这是Word用红色波浪线高亮显示"docx"的方式,提示这个词可能拼写错误。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
爬虫系列:读取 CSV、PDF、Word 文档
上一期我们讲解了使用 Python 读取文档编码的相关问题,本期我们讲解使用 Python 处理 CSV、PDF、Word 文档相关内容。
太后
2022/01/12
3.2K0
python之python-docx编辑和读取word文档
如果是想读取其中的图片或是更复杂地编辑,首先我们需要先来认识下docx文档的格式组成:
菲宇
2019/06/13
3.6K0
python之python-docx编辑和读取word文档
[PYTHON] 自动化办公03 python内置xml包处理docx和xlsx文档
由于 环境不支持连接外网, 无第三方包. 那些好用的word处理包都无法使用, 难度一下子就上来了..... 好歹有python3 (py2的话,难度更上一层楼.)
大大刺猬
2024/03/28
7730
[PYTHON] 自动化办公03  python内置xml包处理docx和xlsx文档
Python网络爬虫笔记(三):下载博客园随笔到Word文档
(一)   说明 在上一篇的基础上修改了下,使用lxml提取博客园随笔正文内容,并保存到Word文档中。 操作Word文档会用到下面的模块: pip install python-docx 修改的代码(主要是在link_crawler()的while循环中增加了下面这段) 1 tree = lxml.html.fromstring(html) #解析HTML为统一的格式 2 title = tree.xpath('//a[@id="cb_post_title_url"]'
free赖权华
2018/04/27
1.6K0
Python网络爬虫笔记(三):下载博客园随笔到Word文档
05存储数据
Python3中,urllib.request.urlretrieve根据文件的URL下载文件。
用户1250179
2018/08/02
2.1K0
Python:读取 .doc、.docx
Python 中可以读取 word 文件的库有 python-docx 和 pywin32。
py3study
2020/01/21
6.5K0
Python网络数据采集
有人说编程语言就是宗教,不同语言的设计哲学不同,行为方式各异,“非我族类,其心必异”,但本着美好生活、快乐修行的初衷,我们对所有语言都时刻保持敬畏之心,尊重信仰自由,努力做好自己的功课。对爱好Python的人来说,人生苦短,Python当歌!
一点儿也不潇洒
2018/08/07
4.8K0
Python网络数据采集
(数据科学学习手札31)基于Python的网络数据采集(初级篇)
  在实际的业务中,我们手头的数据往往难以满足需求,这时我们就需要利用互联网上的资源来获取更多的补充数据,但是很多情况下,有价值的数据往往是没有提供源文件的直接下载渠道的(即所谓的API),这时我们该如何批量获取这些嵌入网页中的信息呢?
Feffery
2018/05/05
1.8K0
(数据科学学习手札31)基于Python的网络数据采集(初级篇)
数据导入与预处理-第4章-数据获取python读取docx文档
Word(Microsoft Office Word)是微软公司的一款文字处理软件,在日常工作、学习中常被用于处理或存储文字信息。Word文件有两种扩展名.doc和.docx,其中扩展名.doc为微软专用格式,并未对外完全授权,兼容性低;而扩展名为.docx的文件无论是从文件体积大小、响应速度、兼容性等方面都优于.doc文件。 由于Pandas库中没有提供读取Word文件的功能,这里需要借助第三方库python-docx读取Word文件(扩展名为.docx)中的数据。 python-docx是一个Python中专门用于创建和修改Word(以.docx为后缀名)文件的库,该库中提供了Word文件的全套操作,可以轻松地对Word文件进行读写操作。 如果当前的环境中没有安装过python-docx库,那么需要先通过pip命令安装该库。
IT从业者张某某
2022/11/12
1.6K0
数据导入与预处理-第4章-数据获取python读取docx文档
Python:读取 .doc、.docx 两种 Word 文件简述及“Word 未能引发事件”错误
Python 中可以读取 word 文件的库有 python-docx 和 pywin32。
丹枫无迹
2019/01/22
2.3K0
Python | Python-word文档标题格式判断
在日常生活里,不管是办公、学习还是制作邀请函、请柬、简历等等,我们都会使用一个软件Microsoft Office Word,Office Word是微软公司的一个收费文字处理应用程序,是最流行的文字处理程序之一,它功能强大,简学易懂,但同时也有一个缺点,当一个Word文档储存的内容特别庞大的时候,使用者想要批量判断自己所写的内容是否统一,格式是否正确,是非常困难,需要使用特别多的步骤,非常繁琐,但是今天python能够解决其中的困难,使其变得非常简便。
算法与编程之美
2021/07/09
1.8K0
Python | Python-word文档标题格式判断
Word 神器 python-docx
前两天有个朋友向我求助,她在写毕业论文时,不小心将论文里的中文双引号替换为英文的了,各种原因导致无法回退,8万多字的论文,眼看就要交了,该怎么办?
纯洁的微笑
2020/04/01
3K0
Word 神器 python-docx
python自动化系列之使用python-docx操作word文档
日常办公中经常用到word程序,在python中同样有针对word的操作库python-docx;使得python可以自动化操作word文档;
JQ实验室
2022/07/22
2.4K0
别再问我Python怎么操作Word了!
前言 在之前的自动化系列文章中,我们分别讲解过?Python操作Excel利器openpyxl,也讲过?Python操作PDF的几种方式,今天我们将通过代码讲解Python操作Word文档docx的常
刘早起
2020/09/23
1.4K0
别再问我Python怎么操作Word了!
python_docx制作word文档
Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把word文档,文档中的段落、文本、字体等都看做对象,对对象进行处理就是对word文档的内容处理。
py3study
2020/01/15
3.2K0
python_docx制作word文档
用Python读写Word文档入门
最近有同事需要批量出500个Word文档,按照1个Word文档耗时1分钟来算也需要8.33小时足足有1天工时。于是,这位同事找到了才哥帮忙,才哥接过需求花了不到30分钟写好脚本,运行脚本不到1分钟就生成了500份Word文档并且进行了分类归档!
可以叫我才哥
2021/11/09
8.8K0
用Python读写Word文档入门
使用多个Python库开发网页爬虫(一)
21CTO社区导读:在本篇文章里,我们将讨论使用Python进行网页抓取以及如何引用多个库,如Beautifusoup,Selenium库,以及JavaScript的PhantomJS库来抓取网页。 在本文中,我们将学习到如何抓取静态页面,Ajax内容、iFrame、处理Cookie等内容。 关于网页抓取 网页抓取是从Web中提取数据的过程,可以用于分析数据,提取有用的信息。 可以将抓取的数据存储到数据库里,也可以保存为任何格式的文件格式,比如CSV,XLS等,可用于其它软件再编辑。 在Python语言的世
企鹅号小编
2018/03/02
3.9K0
python中的urllib模块中的方法
urllib.request模块定义了一些打开URLs(一般是HTTP协议)复杂操作像是basic 和摘要模式认证,重定向,cookies等的方法和类。这个模块式模拟文件模块实现的,将本地的文件路径改为远程的url。因此函数返回的是类文件对象(file-like object)
py3study
2020/01/09
2.3K0
Python自动化Word,使用Python-docx和pywin32
本文介绍如何使用python-docx自动化Word文档,以及如何使用win32com库发送电子邮件。假设有一个存储在Excel文件(或数据库)中的客户信息列表,处理过程如下所示:
fanjy
2022/03/04
4.2K0
Python自动化Word,使用Python-docx和pywin32
Python多线程结合队列下载百度音乐代码
[Python]代码     #!/usr/bin/python # -*- coding: utf-8 -*- ''' 百度中批量下载某歌手的歌(目前只下载第一页,可以自行拓展) @author:admin @qq: 1243385033 ''' import threading, urllib2, os,re,sys from bs4 import BeautifulSoup from Queue import Queue '''目标歌手''' SINGER = u'亚东' '''保存路径'''
用户7705674
2021/11/01
2740
推荐阅读
相关推荐
爬虫系列:读取 CSV、PDF、Word 文档
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档