CSV faylını pandas və Requests ilə proksi vasitəsilə oxumaq
Konfiqurasiya edilmiş Requests transportu ilə CSV götürün, HTTP nəticəsini yoxlayın və pandas-a analiz üçün bayt buferi verin.
HTTP marşrutu açıq proksi nəzarəti tələb etdikdə, əvvəlcə CSV-ni götürün və yaranan baytları pandas həll etsin:
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')
Proksi daşımanı həyata keçirir; HTTP proksi siyahısı açıq HTTP marşrutu üçün son nöqtə namizədləri təqdim edir. pandas fayl kimi obyekt alır və adi delimiter, sütun, kodlaşdırma və məlumat növü seçimlərini tətbiq edir.
Təhlildən əvvəl HTTP nəticəsini yoxlamaq aşkar HTTP xəta gövdəsinin cədvəl kimi qəbul edilməsinin qarşısını alır. Gözlənilməz məzmunu da yoxlayın: giriş və ya siyasət səhifəsi 200 qaytarıb yenə də tələb olunan CSV əvəzinə HTML ola bilər.
HTTP URL-ləri üçün read_csv-nin storage_options parametrləri sorğu başlıqları kimi ötürülür. Bu interfeys Requests üslubunda proxies xəritəsi deyil.
Buferin sıxılma nəticəsini yönləndirəcək arxiv fayl adı yoxdur. Alınan yük tələb etdikdə compression göstərin. Eyni əvvəlcə-götür yanaşması read_excel və bayt buferi ilə işləyir və həmin format üçün uyğun cədvəl mühərrikindən istifadə edir.
Bu nümunə bütün cavabı yaddaşda saxlayır. Böyük eksport üçün onu idarə olunan yerli fayla axıdın və həmin faylı təhlil edin, məlumat iş axını dəstəklədikdə hissələrə bölərək.