python 爬虫 表格和word文档table处理
表格解析
导入包
import xlrd
下面方法针对的是表格的每列数据是有标题栏的,通过锁定标题栏,然后以标题栏为字典的key,以每行的数据分别为对应的value,这样就获得便捷的数据
file_content = base64.b64decode(body)
book = xlrd.open_workbook(file_contents=file_content)
sheet1 = book.sheets()[0]
# 总行数
nrows = sheet1.nrows
row_num = 0
# 获取到表格中每行的标题
for row in range(nrows):
values = sheet1.row_values(row)
if '' not in values:
row_num = row
break
# 从标题所在行开始,往下遍历每行数据,以字典的格式存储数据
key_list = sheet1.row_values(row_num)
if len(key_list):
for row in range(row_num + 1, nrows):
values = sheet1.row_values(row)
dic = {}
for i in range(len(key_list)):
dic[key_list[i]] = values[i]
注意:上面的表格数据是二进制流的,要打开本地表格文件使用下面的代码
xlrd.open_workbook(filePath)
docx word格式解析
导入包
from docx import Document
注意:docx
库只能解析docx格式的文档,无法解析doc格式的文档,需要转格式。
def get_word_table(path):
document = Document(path) # 读入文件
tables = document.tables # 获取文件中的表格集
table = tables[0] # 获取文件中的第一个表格
info_keys = [
table.cell(0, 0).text,
table.cell(0, 1).text,
table.cell(0, 2).text,
table.cell(0, 3).text,
table.cell(0, 4).text
]
try:
info_keys.append(table.cell(0, 5).text)
except:
pass
for i in range(1, len(table.rows)): # 从表格第二行开始循环读取表格数据
info = {
info_keys[0]: table.cell(i, 0).text,
info_keys[1]: table.cell(i, 1).text,
info_keys[2]: table.cell(i, 2).text,
info_keys[3]: table.cell(i, 3).text,
info_keys[4]: table.cell(i, 4).text}
try:
info[info_keys[5]] = table.cell(i, 5).text
except:
pass
关于这两个库的其它操作可以自行百度。。。
本文来自博客园,作者:七夜魔手,转载请注明原文链接:https://www.cnblogs.com/ranbox/p/18461076