众所周知,python最强大的地方在于,python社区汇总拥有丰富的第三方库,开源的特性,使得有越来越多的技术开发者来完善。
python的完美性。
未来人工智能,大数据方向,区块链的识别和进阶都将以python为中心来展开。
咳咳咳! 好像有点打广告的嫌疑了。
当前互联网信息共享时代,最重要的是什么?是数据。最有价值的是什么?是数据。最能直观体现技术水平的是什么?还是数据。
所以,今天我们要分享的是:如何来获取各个文件格式的文本信息。
普通文件的格式 一般分为: txt普通文本信息,doc word文档,html网页内容,excel表格数据,以及特殊的mht文件。
一、Python处理html网页信息
html类型的文本数据,内容是由前端代码书写的标签 文本数据的格式,可以直接在chrome浏览器打开,清楚 的展示出文本的格式。
python 获取html文件的内容和获取txt文件的方法相同,直接打开文件读取就可以了。
读取代码如下:
with open(html_path, "r", encoding="utf-8") as f: file = f.read()
file 是html文件的文本内容。是一个网页标签的格式内容。
docx文件的文本内容存储结构如下:
文本内容存储于word/document.xml文件中。
第一种方法,我们就可以先将docx还原成zip压缩文件,再解压zip文件,读取word/document.xml文件的内容就ok了。
具体操作代码如下:
def get_content(self): """ 获取docx文档的文本内容 :rtype: object """ os.chdir(r"C:\Users\Administrator\Desktop\新建文件夹") # 改变目录到文件的目录 # os.rename("51 2014.09.12 1份Savannah.docx", "51 2014.09.12 1份Savannah.ZIP") # 重命名为zip文件 f = zipfile.ZipFile('51 2014.09.12 1份Savannah.ZIP', 'r') # 进行解压 xml = f.read("word/document.xml") wordObj = BeautifulSoup(xml.decode("utf-8")) # print(wordObj) texts = wordObj.findAll("w:t") content = [] for text in texts: content.append(text.text) content_str = "".join(content) return content_str
最后获取到的就是docx文档的所有文本数据了。
No.2 将docx文档转换成python能够处理的文本格式
第一种方法,是依据docx文档的原理来获取数据,流程有点繁琐,有没有能直接读取docx文档内容的方法呢?答案,肯定是没有的,别想了,洗洗回家睡吧。
直接读取docx文档的方法没有,有没有能够将docx文档转换成python能够轻松处理的文本格式呢?
这个可以有,前面说了,python拥有大量丰富的第三方库(先夸一波我大python),历经千辛万苦终于找到了,一个能转换docx文档格式的第三方库,pydocx,pydocx库中有个方法pydocx.to_html()就可以直接将docx文档转换为html文件,怎么样?意不意外,惊喜不惊喜!
第二种方法,转换文本格式的代码如下:
def docx_to_html(self, docx_path): """ docx文档转换成html响应 :rtype: object """ # docx_path = "C:\\Users\Administrator\Desktop\新建文件夹\\51 2014.09.12 1份Savannah.docx" response = PyDocX.to_html(docx_path)
获取到的response是html文件内容。
四、Python处理mht文件
mht文件是一种只能在IE浏览器上展示的文本格式,在chrome浏览器中打开是一堆的乱码。
No.1 伪造IE请求mht文件内容
最基础的读取mht文本的方法就是伪造IE浏览器请求。
调用requests库,发送get请求网页链接,构造IE的请求头信息。
理论上来说,这种方法是可行的。但是呢,不建议用,原因大家都懂得。
No.2 转换文件格式
好了说正经的方法,猜测mht文件能否修改成其他文件格式来直接读取呢?
docx,不行;html,不行;excel,更不用说了。
真相只有一个!!!
直接修改后缀得到的docx,无法读取。
so,我们想到的方法是什么呢。没错,就是修改成doc文档。
方法是匪夷所思的,但也是灵感一现。
mht可以直接通过修改后缀转换成doc文档,doc文档读取文本内容的方法具体参考上面读取doc文档的方法。
如何获取html文本的内容?
html文本的内容是网页结构标签数据,取出文本的方式是:re正则,或者xpath。
后续,小伙伴有需要的话,会再开一章详细了解re,xapth的使用规则。
来源网络,侵权联系删除
,