pd.read_html błąd klienta zdalnego klienta odłączony
Oct 21 2020
Wczoraj poniższy kod bez problemu dał mi ramkę danych. Ale dzisiaj zaczęło mi się pojawiać następujący błąd:
http.client.RemoteDisconnected: Remote end closed connection without response
Jakieś rozwiązanie? Wiem, że problem pochodzi ze strony internetowej, ale potrzebuję rozwiązania, które pomoże mi nadal używać tego samego kodu
import datetime
import pandas as pd
import sqlalchemy
from datetime import datetime
from datetime import date, timedelta
#d = datetime.today().strftime('%d-%m-%Y')
data_atual=datetime.now()
mes_atual = data_atual.month
ano_atual= data_atual.year
df = []
for j in range (2020, ano_atual+1):
for i in range (9,13):
frame = []
df1 = pd.read_html('https://www.centrodeinformacao.ren.pt/userControls/GetExcel.aspx?T=REN_MENSAL&P='+str(j)+'&PP='+str(i)+'&PPP=26&PPPP=36&PPPPP=0&variation=PT', decimal=',', thousands=',')[0]
df2 = pd.read_html('https://www.centrodeinformacao.ren.pt/userControls/GetExcel.aspx?T=REN_MENSAL&P='+str(j)+'&PP='+str(i)+'&PPP=26&PPPP=36&PPPPP=0&variation=PT', decimal=',', thousands=',')[2]
frame.append(df1)
frame.append(df2)
print(frame)
result = pd.concat(frame)
print(result)
engine = sqlalchemy.create_engine('mysql+pymysql://root:1234@localhost:3306/projeto')
result.to_sql(
name='renmensal'+str(i)+str(j), # database table name
con=engine,
if_exists='replace',
index=False
)
Odpowiedzi
AndrejKesely Oct 21 2020 at 09:48
Błąd występuje po stronie serwera - czasami serwer zwraca błąd. Jednym obejściem jest powtarzanie żądań aż do sukcesu, na przykład:
import http
import pandas as pd
j = 2020
i = 9
url = 'https://www.centrodeinformacao.ren.pt/userControls/GetExcel.aspx?T=REN_MENSAL&P='+str(j)+'&PP='+str(i)+'&PPP=26&PPPP=36&PPPPP=0&variation=PT'
while True:
try:
df1 = pd.read_html(url, decimal=',', thousands=',')[0]
break
except http.client.RemoteDisconnected as e:
continue
print(df1)
Wydruki:
0 ... 6
0 CONSUMO [GWh] ... Variação Acumulada:
1 Quebra ... NaN
2 Fios de Água ... 78.2
3 Albufeiras ... 58.0
4 Total Hídrica Regime Ordinário ... 67.8
5 Sines ... -77.7
6 Ribatejo ... -3.2
7 Lares ... 3.0
8 Pego C.C. ... 35.0
9 Pego ... -64.6
10 T.Outeiro C.C. ... 3.6
11 Total Térmica Regime Ordinário ... -20.7
12 TOTAL PRODUÇÃO LÍQUIDA ... 5.3
13 Importação (Comercial) ... -10.1
14 Exportação (Comercial) ... 66.0
15 SALDO IMPORTADOR ... -43.9
16 Hidráulica ... 37.9
17 Térmica ... 3.9
18 Eólica ... -9.1
19 Fotovoltaica ... 16.7
20 Ondas ... NaN
21 TOTAL PRODUÇÃO REGIME ESPECIAL ... -1.3
22 PRE Renovável ... -0.6
23 BOMBAGEM HIDROELÉCTRICA ... 24.2
24 CONSUMO ... -3.5
25 Evolução corr.temp e dias úteis ... -4.2
26 Consumo Mercado Liberalizado ... ---
27 Consumo Mercado Regulado ... ---
[28 rows x 7 columns]