当前位置:   article > 正文

Python抓取html中table数据_dihtmlparser 读取表格内容

dihtmlparser 读取表格内容

SC

def table_Excel(tableHtml):
    soup = BeautifulSoup(content, 'html.parser')
    tables = soup.find_all('table')  # 查看当前html页面所有table 元素<可能含有多个>
    file_name = "export{}.xlsx".format(time.time())  # 导出文件名
    # ExcelWriter is the class for writing DataFrame objects into excel sheets.
    writer = pd.ExcelWriter(file_name, engine='xlsxwriter')  # Excel 写操作对象
    workbook = writer.book  # 创建工作簿
    for idx, table in enumerate(tables):
        table_title = 'Table-' + str(idx)
        # Read HTML tables into a list of DataFrame objects.
        df_table = pd.read_html(str(table), header=0, flavor='bs4')[0]
        df_table.dropna(how='all', inplace=True)  # 当一整行都是nan时,去掉该行
        # print(df_table)
        df_table.to_excel(writer, index=False, sheet_name=table_title)  # 将df对象转换成Excel表格

        worksheet = writer.sheets[table_title] # 添加该子表
        # 对工作簿添加样式
        header_fmt = workbook.add_format({'font_size': 14, 'bold': True, 'fg_color': '#D7E4BC', 'border': 1})
        # 对子表的第一行的字段设置样式
        for col_num, value in enumerate(df_table.columns.values):
            worksheet.write(0, col_num, value, header_fmt)
        # 设置工作簿列宽
        worksheet.set_column('A:Z', 25)
    # # Close the Pandas Excel writer and output the Excel file.
    writer.save()
    print('Export End!')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

Analyse

  • 实现的功能:将html 中所有table汇成n个子表,对子表首行设置样式
  • 处理html中table的步骤:
    1. 利用BS解析html文件,找出所有table标签
    2. 设置导出文件名
    3. 初始化ExcelWriter变量,传入导出文件名
    4. 创建工作簿
    5. 遍历n个table标签
    6. 设置子表名
    7. 利用pd.read_html方法将html 中的table对象转换成df对象
    8. 清理nan数据
    9. 将df对象转化成excel对象,传入writer和子表名称等等
    10. 生成worksheet 子表对象
    11. 为工作簿添加表头格式
    12. 遍历子表第一行的列值,为其 添加表头格式
    13. 关闭writer 对象,输出Excel文件

Differ

  • workbook ,worksheet,df和writer的区别:
  1. workbook工作簿
  2. worksheet 子表
  3. df 对象
  4. writer 为把df对象写入excel表中的类
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/249917
推荐阅读
相关标签
  

闽ICP备14008679号