Четене на CSV през прокси с pandas и Requests
Изтеглете CSV чрез конфигуриран транспорт на Requests, проверете HTTP резултата и дайте на pandas байтов буфер за анализ.
Когато HTTP маршрутът изисква явен контрол на прокси, първо изтеглете CSV и оставете pandas да се справи с получените байтове:
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')
Проксито поема транспорта; списъкът с HTTP проксита предлага кандидати за крайни точки за публичен HTTP маршрут. pandas получава файлоподобен обект и прилага обичайните си опции за разделител, колони, кодиране и типове данни.
Проверката на HTTP резултата преди анализа не позволява очевидно тяло на HTTP грешка да бъде взето за таблица. Прегледайте и неочакваното съдържание: страница за вход или политика може да върне 200 и пак да е HTML вместо поискания CSV.
За HTTP URL адреси storage_options на read_csv се предават като заглавки на заявката. Този интерфейс не е съпоставяне на proxies в стил Requests.
Буферът няма име на архив, което да насочва извода за компресия. Посочете compression, когато изтегленият пакет го изисква. Същата схема „първо изтегляне“ работи с read_excel и байтов буфер, с подходящия за формата двигател за електронни таблици.
Този пример държи целия отговор в паметта. За голям експорт го насочете към управляван локален файл и анализирайте този файл, с разделяне на части, където работният поток позволява.