Python实现读取HTML表格 pd.read_html()

 更新时间:2022年07月14日 14:34:03   作者:SpikeKing  
这篇文章主要介绍了Python实现读取HTML表格 pd.read_html(),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Python读取HTML表格

数据部门提供的数据是xls格式的文件,但是执行读取xls文件的脚本报错。

xlrd报错:

xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'<html xm'

读取xlrd的脚本

data_lines = read_excel_file(self.file_path)

def read_excel_file(file_path):
    """
    读取excel文件
    """
    import xlrd
    print('[Info] excel file: {}'.format(file_path))
    book = xlrd.open_workbook(file_path)
    sheet = book.sheet_by_index(0)
    data_lines = []
    for row in range(0, sheet.nrows):
        line_data = []
        for column in range(0, sheet.ncols):
            val = sheet.cell(row, column).value
            line_data.append(val)
        data_lines.append(line_data)
    return data_lines  # 二维数组

原因是文件格式是HTML表格,参考python xlrd unsupported format, or corrupt file.

使用pandas的read_html读取文件,同时替换nan为空字符,数据格式保持一致。

def read_html_table(file_path):
    """
    读取html表格
    """
    import pandas as pd
    pd_table = pd.read_html(file_path)
    df = pd_table[0]
    # num_col = df.shape[1]
    # num_row = df.shape[0]
    df_data = df.values.tolist()
    df_data = df_data[1:]
    for r_idx, row in enumerate(df_data):
        for c_idx, value in enumerate(row):
            # 判断nan,参考https://stackoverflow.com/questions/944700/how-can-i-check-for-nan-values
            if value != value:
                df_data[r_idx][c_idx] = ""
    return df_data

读取问题解决。

pd.read_html读取数据不完整问题

问题:有一个较大的表格数据存在了html中,打算用read_html直接取出来这部分数据,但后来发现read_html读取的数据不完整,后来检查html的table都没有任何问题

解决办法

pd.read_html的默认解析器为 'lxml' ,添加参数flavor='bs4'便可解决

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python中的策略模式之解锁编程的新维度

    Python中的策略模式之解锁编程的新维度

    策略模式是一种设计模式,通过定义一系列算法,将它们封装起来,并且使它们可以相互替换,从而使算法的变化独立于使用算法的客户,本文给大家介绍Python中的策略模式之解锁编程的新维度,感兴趣的朋友跟随小编一起看看吧
    2024-10-10
  • Python实现将HTML转为PDF/图片/XML/XPS格式

    Python实现将HTML转为PDF/图片/XML/XPS格式

    网页内容是信息传播的主要形式之一,这篇文章主要和大家介绍了如何使用Python实现将HTML分别转为PDF/图片/XML/XPS格式等,需要的可以参考下
    2024-03-03
  • Python3 搭建Qt5 环境的方法示例

    Python3 搭建Qt5 环境的方法示例

    这篇文章主要介绍了Python3 搭建Qt5 环境的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • numpy.float32的典型用法

    numpy.float32的典型用法

    本文主要介绍了numpy.float32的典型用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 基于Python中random.sample()的替代方案

    基于Python中random.sample()的替代方案

    这篇文章主要介绍了基于Python中random.sample()的替代方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 通过Python的gtts库将文字转为音频的操作方法

    通过Python的gtts库将文字转为音频的操作方法

    文字转音频可以帮助视觉障碍者通过听取声音来获取信息,也可以帮助人们方便地听取一些长篇文章或学习资料,节省阅读时间和疲劳,这篇文章主要介绍了通过Python的gtts库将文字转为音频的方法,需要的朋友可以参考下
    2023-05-05
  • Django使用消息提示简单的弹出个对话框实例

    Django使用消息提示简单的弹出个对话框实例

    今天小编就为大家分享一篇Django使用消息提示简单的弹出个对话框实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • python3实现名片管理系统(控制台版)

    python3实现名片管理系统(控制台版)

    这篇文章主要为大家详细介绍了python3实现名片管理系统控制台版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • 15行Python代码实现网易云热门歌单实例教程

    15行Python代码实现网易云热门歌单实例教程

    这篇文章主要给大家介绍了关于利用15行Python代码实现网易云热门歌单的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • Python xlwings插入Excel图片的实现方法

    Python xlwings插入Excel图片的实现方法

    这篇文章主要介绍了Python xlwings插入Excel图片的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02

最新评论