Użycie proxy do pracy z API

Krok po kroku instrukcja automatyzacji żądań API przez serwer proxy na przykładzie języka Go. Dowiedz się, jak omijać limity zapytań i blokady geograficzne.

Олександр Л.
Попередній перегляд

Олександр Л.

11 czerwca 2025

2554

2554

11 czerwca 2025

Interfejs programowania aplikacji (szeroko znany jako API) to powszechna dziś praktyka komunikacji ze stronami internetowymi i aplikacjami. W procesie korzystania z API można w łatwy i ustrukturyzowany sposób wymieniać funkcje i dane, bezproblemowo integrując procesy robocze i strumienie danych między różnymi witrynami, aplikacjami i systemami. Na przykład między Twoją stroną a serwerem danych możesz wymieniać takie informacje, jak kursy walut, prognozy pogody, aktualizacje cen produktów i wiele innych. Serwer proxy API do pracy z API jest potrzebny z kilku powodów:

  • API może być zaprogramowane tylko na określoną maksymalną liczbę żądań z jednego adresu IP w jednostce czasu, a po przekroczeniu progu Twój adres IP może zostać zablokowany;
  • Dostęp do API może zostać odrzucony ze względu na Twój region geograficzny;
  • Liczba połączeń z serwerem może być ograniczona, i to bardzo rygorystycznie.

Potrzebujesz proxy API, aby wymiana danych nie została przerwana. W praktyce wykorzystuje się do tego automatyzację pracy poprzez umieszczenie kodu zawierającego niezbędne dane. Kod może być napisany w różnych językach programowania: Python, Go, Node.js, JavaScript, PHP i innych. Jako przykład weźmiemy język Go, który doskonale sprawdza się w programowaniu webowym. Pamiętaj, że do stworzenia kodu musisz posiadać pewne podstawy programowania (wiedzę o tym, czym jest kod i jakie zmienne w nim określić). Alternatywnie możesz wynająć specjalistę do wykonania konkretnych zadań.


StableProxy

Szukasz ukraińskich serwisów proxy lub ua ips w celu celowania, reklam, SEO lub testowania zlokalizowanych usług? Mamy Cię objęte.


Automatyzujemy wymianę danych między API a proxy

Załóżmy, że musisz zautomatyzować powiązanie proxy-API w celu pobierania prognozy pogody na jutro z publicznej domeny Weather.com (podajemy to wyłącznie w celu stworzenia przejrzystego przykładowego kodu). Instrukcja krok po kroku, jak pracować z serwerem proxy przy użyciu języka Go, wygląda następująco:

  1. Pobierz adres proxy w formacie IP:port:użytkownik:hasło. Będzie to na przykład 123.45.67.89:8080:user123:pass123.
  2. Zarejestruj się w usłudze WeatherAPI.com, aby uzyskać unikalny klucz API oraz pełny adres, z którego będziesz pobierać dane pogodowe, na przykład https://api.weatherapi.com/v1/forecast.json?key=YOUR_API_KEY&q=Kyiv&days=2, gdzie days=2 to data pobrania danych pogodowe (na przykład na jutro).
  3. Utwórz kod żądania, który w naszym przypadku będzie wyglądał następująco: Go
    package main
    import (
        "fmt"
        "io/ioutil"
        "net/http"
        "net/url"
    )
    func main() {
        // === Krok 1: Konfiguracja proxy ===
        proxyStr := "http://user123:[email protected]:8080"
        proxyURL, err := url.Parse(proxyStr)
        if err != nil {
            fmt.Println("Błąd w adresie proxy:", err)
            return
        }
        // === Krok 2: Skonfiguruj klienta HTTP z proxy ===
        transport := &http.Transport{Proxy: http.ProxyURL(proxyURL)}
        client := &http.Client{Transport: transport}
        // === Krok 3: Utwórz żądanie do API pogodowego ===
        apiKey := "abc123456789xyz" // ← Twój klucz API
        city := "Kyiv"               // ← Twoje miasto, w tym przypadku Kijów.
        apiURL := fmt.Sprintf("https://api.weatherapi.com/v1/forecast.json?key=%s&q=%s&days=2", apiKey, city)
        req, err := http.NewRequest("GET", apiURL, nil)
        if err != nil {
            fmt.Println("Błąd podczas tworzenia żądania:", err)
            return
        }
        // === Krok 4: Wyślij żądanie przez proxy (w formacie JSON) ===
        resp, err := client.Do(req)
        if err != nil {
            fmt.Println("Błąd podczas wysyłania żądania:", err)
            return
        }
        defer resp.Body.Close()
        // === Krok 5: Odczytaj i zapisz otrzymaną odpowiedź ===
        body, err := ioutil.ReadAll(resp.Body)
        if err != nil {
            fmt.Println("Błąd podczas odczytywania odpowiedzi:", err)
            return
        }
        fmt.Println("Odpowiedź z API:")
        fmt.Println(string(body))
    }
    

W rezultacie użycia proxy API service będziesz mógł po uruchomieniu tego kodu otrzymać potrzebne dane. Pamiętaj, że pisanie i przetwarzanie kodu w dowolnym języku programowania wymaga posiadania środowiska programistycznego do pracy z kodem. W naszym przykładzie jest to język programowania Go, który należy uzyskać instalując odpowiednie oprogramowanie dla swojego systemu operacyjnego. Edytor tekstu potrzebny do pisania kodu i parsowania plików odpowiedzi JSON to Visual Studio Code, GoLand lub Sublime Text/Notepad++ (edytory z podświetlaniem składni). Będziesz także potrzebować skonfigurowanego serwera proxy oraz wiersza poleceń (Windows) lub Terminala (MacOS/Linux) do uruchomienia napisanego kodu.


Popularne pytania

Co zrobić, jeśli docelowe API blokuje żądania nawet przez proxy z powodu odcisku palca TLS (TLS Fingerprint)?

Nowoczesne systemy ochrony (np. Cloudflare) analizują nie tylko IP, ale także odcisk palca TLS Twojego klienta HTTP. Standardowy klient Go (net/http) generuje swój specyficzny odcisk palca. Jeśli API Cię blokuje, musisz użyć zewnętrznych bibliotek do symulacji odcisku palca przeglądarki (np. utls) lub przejść na proxy mieszkaniowe (residential) o najwyższym poziomie zaufania.