Salve stavo provando a prendere dei dati di una tabella presente su un sito però quando eseguo il file mi genera un eccezione in cui dice "
cannot set a row with mismatched columns"
alla linea in cui sta scritto "mydata.loc[length] = row"
,quando provo a vedere cosa prende mydata mi restituisce solo la prima colonna poi si ferma.
Python:
from curses import color_content
from email import header
from lib2to3.pgen2.token import COLONEQUAL
from wsgiref import headers
import requests
from bs4 import BeautifulSoup
import pandas as pd
#pagina di accesso
url = 'site.xyz'
#request.get
page = requests.get(url)
#beatifulSoup
soup = BeautifulSoup(page.text, 'lxml')
#estrazione tabella
table1=soup.find('table',id='table28')
#estrazione colonne
headers = []
for i in table1.find_all('th'):
title = i.text
headers.append(title)
#creazione dataframe
mydata=pd.DataFrame(columns=headers)
# loop per riempire il dataframe
for j in table1.find_all('tr')[1:]:
row_data = j.find_all('td')
row = [i.text for i in row_data]
length = len(mydata)
mydata.loc[length] = row
# esporta in csv
mydata.to_csv('classifica_piloti2.csv', index=False)# prova a leggere il file csv
mydata2 = pd.read_csv('classifica_piloti2.csv')