程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python: obtenir les données de la table HTML, enregistrer la table HTML Excel

編輯:Python
# !/usr/bin/env python
# -*-coding:utf-8 -*-
import os.path
import bs4,shutil,time
from pandas.core.frame import DataFrame
def get_html_tabledata(htmlpath,tableindex: int = 0):
"""
htmlDocumentation,Obtenir des données tabulaires
:param htmlpath: htmlChemin du fichier
:param tableindex: tableIndex,int,Par défaut0
:return:Liste des dictionnaires
"""
with open(htmlpath, 'r+',encoding='UTF-8') as f:
s = f.read()
wb = s.strip().replace('\ufeff', '')
soup = bs4.BeautifulSoup(wb, 'lxml') # Analysehtml
# Obtenir les données du tableau spécifié
table=soup.findAll("table")[tableindex] # Lire le deuxième tableau
table_rows = table.findAll("tr") # Obtenir un ensemble de lignes dans le tableau
# Obtenir la première ligne du tableau comme Dictionnaire keykey
keys = [table_rows[0].findAll(['th', 'td'])[i].getText().strip() for i in range(len(table_rows[0].findAll(['th', 'td']))) ]
tabledata = []
for table_row in table_rows[1:]:
row = table_row.findAll(['th', 'td']) # Accèsth/tdÉtiquettes
linedata = {keys[i]: row[i].getText().strip() for i in range(len(row))} # Les données de chaque ligne sont retournées par champ :Paire de clés
tabledata.append(linedata)
# print(tabledata)
return tabledata
def html_to_excel(htmlpath,excelpath,tableindex: int = 0):
"""htmlDocumentation, Enregistrer les données du tableau spécifié dans excelDocumentation"""
tabledata = get_html_tabledata(htmlpath,tableindex)
data = DataFrame(tabledata) # Convertir la liste des dictionnaires en style de table
# print(data,len(data),len(data.columns)) # Obtenir le nombre de lignes:len(df);Obtenir le nombre de colonnes:len(df.columns)
# Écrireexcel
data.to_excel(excelpath, index=False, header=True) # Produit sous forme de tableau , Sans numéro de colonne ,Nom du fichier de sortie
if __name__ == '__main__':
htmlpath = r'C:\Users\yhen\Downloads\2022-06-17T13_51_06+0800.html'
tabledata = get_html_tabledata(htmlpath,1)
tabledata = sorted(tabledata,key=lambda x:x['Mots clés'])
print(tabledata)


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved