Читање 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 и бајтним бафером, уз одговарајући мотор за табеле за тај формат.
Овај пример држи цео одговор у меморији. За велики извоз, проследите га у управљану локалну датотеку и парсирајте ту датотеку, са дељењем на делове где то ток података подржава.