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

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

作者头像
用户7886150
修改于 2021-01-15 09:04:15
修改于 2021-01-15 09:04:15
1.4K0
举报
文章被收录于专栏: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.1K0
【Python】Python爬虫爬取中国天气网(一)
最近想写一个爬取中国天气网的爬虫。所以打算写一个关于爬虫的系列教程,本文介绍爬虫的基础知识和简单使用。
树枝990
2020/08/19
2.8K0
【Python】Python爬虫爬取中国天气网(一)
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文档
python之python-docx编辑和读取word文档
如果是想读取其中的图片或是更复杂地编辑,首先我们需要先来认识下docx文档的格式组成:
菲宇
2019/06/13
3.5K0
python之python-docx编辑和读取word文档
05存储数据
Python3中,urllib.request.urlretrieve根据文件的URL下载文件。
用户1250179
2018/08/02
2K0
Python爬虫抓取网站模板的完整版实现
下面分享下抓去网站模板的完整版实现,亲测可用。(注:仅限个人爱好者研究使用,不要用于其他非法用途。)
杨永贞
2022/10/04
1.6K0
Python爬虫抓取网站模板的完整版实现
Python:读取 .doc、.docx
Python 中可以读取 word 文件的库有 python-docx 和 pywin32。
py3study
2020/01/21
6.5K0
使用多个Python库开发网页爬虫(一)
21CTO社区导读:在本篇文章里,我们将讨论使用Python进行网页抓取以及如何引用多个库,如Beautifusoup,Selenium库,以及JavaScript的PhantomJS库来抓取网页。 在本文中,我们将学习到如何抓取静态页面,Ajax内容、iFrame、处理Cookie等内容。 关于网页抓取 网页抓取是从Web中提取数据的过程,可以用于分析数据,提取有用的信息。 可以将抓取的数据存储到数据库里,也可以保存为任何格式的文件格式,比如CSV,XLS等,可用于其它软件再编辑。 在Python语言的世
企鹅号小编
2018/03/02
3.7K0
用Python写几行代码,一分钟搞定一天工作量,同事直呼:好家伙!
前几天有一个读者说最近要整理几千份文件,头都要整秃了,不知道能不能用Python解决,我们来看一下,你也可以思考一下。
刘早起
2021/01/22
9140
用Python写几行代码,一分钟搞定一天工作量,同事直呼:好家伙!
[PYTHON] 自动化办公03 python内置xml包处理docx和xlsx文档
由于 环境不支持连接外网, 无第三方包. 那些好用的word处理包都无法使用, 难度一下子就上来了..... 好歹有python3 (py2的话,难度更上一层楼.)
大大刺猬
2024/03/28
7200
[PYTHON] 自动化办公03  python内置xml包处理docx和xlsx文档
(数据科学学习手札31)基于Python的网络数据采集(初级篇)
  在实际的业务中,我们手头的数据往往难以满足需求,这时我们就需要利用互联网上的资源来获取更多的补充数据,但是很多情况下,有价值的数据往往是没有提供源文件的直接下载渠道的(即所谓的API),这时我们该如何批量获取这些嵌入网页中的信息呢?
Feffery
2018/05/05
1.8K0
(数据科学学习手札31)基于Python的网络数据采集(初级篇)
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
2690
数据导入与预处理-第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命令安装该库。
用户2225445
2022/11/12
1.6K0
数据导入与预处理-第4章-数据获取python读取docx文档
Python网络爬虫笔记(四):使用selenium获取动态加载的内容
(一)  说明 上一篇只能下载一页的数据,第2、3、4....100页的数据没法获取,在上一篇的基础上修改了下,使用selenium去获取所有页的href属性值。 使用selenium去模拟浏览器有点麻烦,例如有300页就要点300次(按博客园这种一页20条,也就是6000条数据。要是几百万条,这个就得点好长时间了) 研究下有没有办法调用JS修改页面默认显示的数据条数(例如:博客园默认1页显示20条,改成默认显示1万条数据)。 (二)  完整代码 delayed.py的代码还是和之前一样。最好限速,不限速很
free赖权华
2018/04/27
3.2K0
Python网络爬虫笔记(四):使用selenium获取动态加载的内容
第一个Python小爬虫
好吧,不是没时间,而是有时间的时候都干别的了,所以对于还需要抽时间学我只能是‘好吧’的态度...
sunonzj
2022/06/21
5840
第一个Python小爬虫
再也不用复制粘贴了!自动读取Word文件并写入Excel
在做数据分析时,虽然操作docx并不是常用操作,但有些时候,数据分析师拿到的文件是docx或doc的Word文件,尤其是对数据具有至关重要的数据字典。接下来以一个数据字典为例来介绍下python-docx读取Word文件的基本操作。并将Word中的表格内容写入excel中。
数据STUDIO
2021/06/24
2.7K0
python自动化高效办公第二期,带你项目实战【一】{excel数据处理、批量化生成word模板、pdf和ppt等自动化操作}
我们在读取文件的时候,excel的列是字母我们不容易直观看出来是第几列,下面对excel进行设置。
汀丶人工智能
2022/12/21
3K0
python自动化高效办公第二期,带你项目实战【一】{excel数据处理、批量化生成word模板、pdf和ppt等自动化操作}
python自动化系列之使用python-docx操作word文档
日常办公中经常用到word程序,在python中同样有针对word的操作库python-docx;使得python可以自动化操作word文档;
JQ实验室
2022/07/22
2.3K0
Python提取docx文档中嵌入式图片和浮动图片的又一种方法
昨天推送了使用docx2python扩展库提取文档中图片的文章之后,经网友perfect提醒,实际上使用python-docx这个扩展库也可以提取浮动图片,并给出了参考代码。经过分析和测试,确实可以,然后根据分析我把perfect朋友给出的代码又简化改进了一下,思路如下:
Python小屋屋主
2019/11/28
2.9K0
Word 神器 python-docx
前两天有个朋友向我求助,她在写毕业论文时,不小心将论文里的中文双引号替换为英文的了,各种原因导致无法回退,8万多字的论文,眼看就要交了,该怎么办?
纯洁的微笑
2020/04/01
2.9K0
Word 神器 python-docx
推荐阅读
相关推荐
爬虫系列:读取 CSV、PDF、Word 文档
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档