Skip to content
intermediate

Cara Menggunakan Proxy SOCKS5 Dataimpulse dengan curl dan Python di macOS

Pelajari cara mengonfigurasi proxy SOCKS5 Dataimpulse di macOS untuk curl dan Python, dengan contoh praktis untuk web scraping dan pengujian API.

macOS SOCKS5 HTTP(S) Web Scraping

Gambaran Umum

SOCKS5 adalah protokol proxy serbaguna yang menangani lalu lintas TCP apa pun, sehingga ideal untuk alat baris perintah dan skrip Python. Tutorial ini menunjukkan cara menggunakan proxy SOCKS5 Dataimpulse di macOS dengan curl dan pustaka requests Python, termasuk autentikasi dan tips rotasi.

Prasyarat

  • macOS 10.15 atau lebih baru
  • Kredensial proxy SOCKS5 Dataimpulse (host, port, nama pengguna, kata sandi)
  • curl (sudah terpasang) dan Python 3
  • Opsional: pip untuk menginstal paket Python

Mengapa SOCKS5?

Dataimpulse mendukung HTTP dan SOCKS5. SOCKS5 bekerja pada tingkat yang lebih rendah, mendukung UDP dan TCP, dan sering kali lebih andal untuk lalu lintas non-HTTP. Untuk web scraping, ini dapat membantu menghindari blokir yang spesifik protokol.

Langkah-langkah

  1. Dapatkan kredensial SOCKS5 Dataimpulse Anda. Di dasbor Dataimpulse Anda, temukan endpoint SOCKS5. Catat host, port, nama pengguna, dan kata sandi.

  2. Tetapkan variabel lingkungan (opsional tetapi praktis). Buka Terminal dan jalankan:

    export DAI_PROXY_HOST="your-proxy-host"
    export DAI_PROXY_PORT="your-proxy-port"
    export DAI_PROXY_USER="your-username"
    export DAI_PROXY_PASS="your-password"
    

    Variabel-variabel ini akan digunakan dalam perintah selanjutnya.

  3. Uji dengan curl. Gunakan flag --proxy dengan skema socks5h (huruf h memastikan resolusi DNS melalui proxy):

    curl --proxy socks5h://$DAI_PROXY_USER:$DAI_PROXY_PASS@$DAI_PROXY_HOST:$DAI_PROXY_PORT https://httpbin.org/ip
    

    Anda akan melihat respons JSON dengan IP Dataimpulse.

  4. Gunakan Python dengan requests dan PySocks. Instal paket yang diperlukan:

    pip3 install requests requests[socks]
    

    Buat skrip Python proxy_test.py:

    import os
    import requests
    
    proxy_host = os.getenv('DAI_PROXY_HOST')
    proxy_port = os.getenv('DAI_PROXY_PORT')
    proxy_user = os.getenv('DAI_PROXY_USER')
    proxy_pass = os.getenv('DAI_PROXY_PASS')
    
    proxies = {
        'http': f'socks5h://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}',
        'https': f'socks5h://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}'
    }
    
    response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=30)
    print(response.json())
    

    Jalankan:

    python3 proxy_test.py
    
  5. Integrasikan dengan skrip scraping. Untuk scraping sederhana, gunakan kembali dictionary proxies. Untuk rotasi proxy, minta sesi baru per permintaan atau gunakan endpoint rotasi jika Dataimpulse menyediakannya (periksa dasbor Anda). Contoh:

    import requests
    import random
    
    # Dengan asumsi Anda memiliki daftar endpoint proxy
    proxy_list = [
        f'socks5h://{user}:{pass}@{host}:{port}' for host, port, user, pass in [
            # endpoint Anda
        ]
    ]
    
    def fetch(url):
        proxy = random.choice(proxy_list)
        return requests.get(url, proxies={'http': proxy, 'https': proxy}, timeout=30)
    
  6. Verifikasi DNS dan IP. Gunakan curl dengan socks5h untuk memastikan DNS diselesaikan dari jarak jauh. Jika Anda melihat IP asli Anda, periksa bahwa Anda menggunakan socks5h dan bukan socks5.

Pemecahan Masalah

  • Koneksi ditolak: Verifikasi host dan port. Pastikan IP Anda masuk daftar putih jika diperlukan.
  • Kesalahan autentikasi: Periksa kembali nama pengguna dan kata sandi. Beberapa karakter khusus mungkin memerlukan pengodean URL di URL proxy.
  • Kebocoran DNS: Selalu gunakan socks5h (atau konfigurasikan resolusi DNS jarak jauh) untuk mencegah kueri DNS lokal.
  • Kesalahan timeout: Tingkatkan timeout di Python dan uji dengan curl terlebih dahulu. Proxy seluler dapat memiliki latensi lebih tinggi.

Ringkasan

Menggunakan proxy SOCKS5 Dataimpulse di macOS dengan curl dan Python sangatlah mudah setelah Anda menangani autentikasi dan resolusi DNS dengan benar. Skema socks5h memastikan DNS jarak jauh, dan pustaka requests Python dengan PySocks menyediakan cara fleksibel untuk mengintegrasikan proxy ke dalam skrip Anda. Selalu uji dengan httpbin.org/ip untuk mengonfirmasi IP keluar Anda.