Citirea unui CSV printr-un proxy cu pandas și Requests
Obțineți un CSV cu un transport Requests configurat, verificați rezultatul HTTP și oferiți pandas un buffer de octeți pentru analiză.
Când ruta HTTP necesită control explicit al proxy-ului, obțineți mai întâi CSV-ul și lăsați pandas să gestioneze octeții rezultați:
from io import BytesIO
import pandas as pd
import requests
route = {
'http': 'http://proxy.example:8080',
'https': 'http://proxy.example:8080',
}
with requests.get(
'https://data.example/report.csv',
proxies=route,
timeout=(5, 30),
) as response:
response.raise_for_status()
frame = pd.read_csv(BytesIO(response.content), encoding='utf-8')
Proxy-ul se ocupă de transport; lista de proxy-uri HTTP oferă candidați pentru puncte finale pe o rută HTTP publică. pandas primește un obiect asemănător unui fișier și aplică opțiunile sale obișnuite pentru delimitator, coloane, codificare și tipuri de date.
Verificarea rezultatului HTTP înainte de analiză evită tratarea unui corp evident de eroare HTTP ca tabel. Verificați și conținutul neașteptat: o pagină de conectare sau de politici poate returna 200 și totuși să fie HTML în locul CSV-ului cerut.
Pentru URL-urile HTTP, storage_options ale read_csv sunt transmise ca antete de cerere. Acea interfață nu este o mapare proxies în stil Requests.
Un buffer nu are nume de fișier de arhivă care să ghideze inferența compresiei. Specificați compression atunci când payload-ul obținut o cere. Aceeași configurație „obține mai întâi” funcționează cu read_excel și un buffer de octeți, folosind motorul de foi de calcul potrivit formatului.
Acest exemplu păstrează întregul răspuns în memorie. Pentru o exportare mare, transmiteți-l într-un fișier local gestionat și analizați acel fișier, cu împărțire în bucăți acolo unde fluxul de date permite.