1.将word文档转为html操作,通过bs4中的 BeautifulSoup 提取html中所需要的内容
步骤一:下载bs4 和 pydocx 并且引入
pip install bs4
pip install pydocx
# 读取word中的内容
from pydocx import PyDocX
from bs4 import BeautifulSoup # 将html转为对象的形式
步骤二:读取word里面的内容,并且解析
html = PyDocX.to_html("C:\\Users\\Administrator\\Desktop\\test.docx")
soup = BeautifulSoup(html, 'html.parser') """ demo 表示被解析的html格式的内容 html.parser表示解析用的解析器 """ soup.prettify() # 使用prettify()格式化显示输出 # print(soup.prettify()) title_list = soup.select("h2>span[style='text-indent:1.25em']", attrs={"style": "text-indent:1.25em"}) content_list = soup.find_all('span', attrs={ "class": "pydocx-left"}) # 指定属性,查找class属性为title的标签元素,注意因为class是python的关键字,所以这里需要加个下划线'_' print(len(content_list))
2.读取word里面的内容,以文本的形式,一段一段的读出来,通过样式去获去文档里面的内容
步骤一:下载python-docx,并且引入
pip install python-docx
# 引入
from docx import Document
步骤二:读取word里面的内容
title = ""
content = "" titleArr = [] document = Document("C:\\Users\\Administrator\\Desktop\\test.docx") # 获取所有段落 all_paragraphs = document.paragraphs for paragraph in all_paragraphs: if paragraph.style.name == 'Normal': content = content + paragraph.text + '\n' else: obj = {"title": title, "content": content} if content != '': titleArr.append(obj) content = "" title = paragraph.text # print(obj)