python网络爬虫文档读取-微软Word文档和.docx
2017-10-09 15:41
736 查看
大约在2008年以前,微软Office产品中的Word用.doc文件格式。这种二进制格式很难读取,而且能够读取word格式软件很少。为了跟上时代,让自己的软件能够符合主流软件的标准,微软决定使用Open Office的类XML格式标准,此后新版Word文件才与其他文字处理软件兼容,这个格式就是.docx。
不过Python对这种Google Docs,Open Office和Microsoft Office都在使用的.docx格式支持还不够好。虽然有一个python-docx库,但是只支持创建新文档和读取一些基本的文件数据,如文件大小和文件标题,不支持正文读取。如果想要从Microsoft Office文件的正文内容,我们需要自己动手找方法:
第一步是从文件读取XML:
程序执行结果如下:
通过执行结果发现,确实包含了大量的信息,但是都被隐藏在XML里面,好在文档的所有正文内容都包含在<w:t>标签里面。标题的内容也是如下,这样就比较好处理了。改进后的程序代码如下:
在此处需要注意一个问题,因为此处是先将word文档转换为xml文档,所以在使用BeautifulSoup进行文档内容解析的时候,需要执行解析器的xml,这样findAll才能正常执行。不可以不指定。
执行结果如下:
你会看到这里docx单独一行,这是因为在原始的XML里,它是由<w:proofErr w:type="spellStart"/>标签包围的。这是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"的方式,提示这个词可能拼写错误。
相关文章推荐
- Python读取word文档(python-docx包)
- $用python-docx模块读写word文档
- python python-docx 替换word文档部分内容
- 002_027 Python 从微软Word文档中抽取文本
- [Python] python-docx 编辑word文档
- python-docx修改已存在的Word文档的表格的字体格式方法
- Python读取Word(.docx)正文信息的方法
- python读取word文档的方法
- python网络爬虫文档读取-纯文本读取
- 将Doc或者Docx文档处理成html的代码逻辑;统计word中的字数,段数,句数,读取word中文档内容的代码逻辑
- python读取word文档,插入mysql数据库的示例代码
- python网络爬虫文档读取-PDF文件读取
- Ubuntu下使用python读取doc和docx文档的内容
- Python-docx:读写word文档的Python库
- 用Python读取Word文档并写入Excel(一)
- Python读取Word(.docx)正文信息
- python读取word文档的方法
- python如何处理解析word文档doc docx , python-docx,python-docx2txt,zipfile
- Ubuntu下使用python读取doc和docx文档的内容方法
- 用python-docx修改已存在的Word文档的表格的字体格式: