Skip to content
advanced

Migrasi dari Dataimpulse ke Smartproxy: Konfigurasi SOCKS5 Lanjutan di Linux untuk Web Scraping

Pelajari cara memigrasikan setup web scraping Anda dari Dataimpulse ke Smartproxy menggunakan SOCKS5 di Linux, termasuk teknik rotasi dan penanganan error tingkat lanjut.

Linux SOCKS5 Web Scraping

Ringkasan

Jika Anda saat ini menggunakan Dataimpulse untuk web scraping dan ingin beralih ke Smartproxy, panduan ini memandu Anda melalui proses migrasi di Linux. Smartproxy menawarkan kumpulan IP 65M+ dengan dukungan SOCKS5, dan proxy residensial serta datacenter mereka cocok untuk scraping skala besar. Tutorial ini mencakup konfigurasi lanjutan, termasuk rotasi proxy, penanganan error, dan scraping asinkron.

Prasyarat

  • Akun Smartproxy dengan proxy residensial atau datacenter yang diaktifkan.
  • Sistem Linux (diuji pada Ubuntu 22.04, tetapi perintahnya berfungsi di sebagian besar distribusi).
  • Python 3.7+ terinstal.
  • Pemahaman dasar tentang command line dan Python.

Langkah-langkah

  1. Dapatkan Kredensial SOCKS5 Smartproxy Anda
    Masuk ke dasbor Smartproxy Anda dan navigasikan ke bagian penyiapan proxy. Anda akan memerlukan:

    • Endpoint proxy (host): misalnya, gateway.smartproxy.com (periksa dasbor Anda untuk endpoint yang tepat).
    • Port: port yang disediakan untuk SOCKS5 (biasanya 1080, tetapi konfirmasikan di dasbor Anda).
    • Nama pengguna dan kata sandi: kredensial autentikasi Anda. Simpan ini untuk langkah berikutnya.
  2. Konfigurasikan Variabel Lingkungan
    Simpan kredensial Anda sebagai variabel lingkungan agar tidak ada di dalam kode Anda. Buka terminal Anda dan jalankan:

    export SMARTPROXY_USER="your_username"
    export SMARTPROXY_PASS="your_password"
    export SMARTPROXY_HOST="gateway.smartproxy.com"
    export SMARTPROXY_PORT="1080"
    

    Ganti nilai-nilai tersebut dengan kredensial dan endpoint Anda yang sebenarnya.

  3. Uji Konektivitas dengan cURL
    Verifikasi bahwa proxy SOCKS5 Anda berfungsi menggunakan cURL:

    curl -x socks5://$SMARTPROXY_USER:$SMARTPROXY_PASS@$SMARTPROXY_HOST:$SMARTPROXY_PORT https://httpbin.org/ip
    

    Anda akan melihat alamat IP proxy Anda di respons. Jika Anda mendapatkan error, periksa kembali kredensial dan endpoint Anda.

  4. Siapkan Python untuk Proxy SOCKS5
    Pasang paket yang diperlukan:

    pip install requests requests[socks]
    

    Untuk scraping asinkron, pasang juga:

    pip install aiohttp aiohttp_socks
    
  5. Scraping Dasar dengan Requests
    Buat skrip Python yang menggunakan SOCKS5 Smartproxy:

    import os
    import requests
    
    proxy_user = os.getenv('SMARTPROXY_USER')
    proxy_pass = os.getenv('SMARTPROXY_PASS')
    proxy_host = os.getenv('SMARTPROXY_HOST')
    proxy_port = os.getenv('SMARTPROXY_PORT')
    
    proxy_url = f"socks5://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}"
    proxies = {
        'http': proxy_url,
        'https': proxy_url
    }
    
    response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=10)
    print(response.json())
    

    Jalankan skrip untuk memastikan berfungsi.

  6. Terapkan Rotasi Proxy
    Proxy residensial Smartproxy mendukung rotasi. Anda dapat mengonfigurasi rotasi di dasbor Anda (misalnya, rotasi per permintaan atau gunakan sesi sticky). Jika Anda perlu mengelola beberapa endpoint, buat daftar:

    import random
    
    proxy_list = [
        f"socks5://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}",
        # Tambahkan lagi jika Anda memiliki beberapa endpoint
    ]
    
    def get_random_proxy():
        return random.choice(proxy_list)
    

    Untuk rotasi per permintaan, cukup gunakan kembali URL proxy yang sama jika rotasi diaktifkan di dasbor Anda.

  7. Penanganan Error dan Percobaan Ulang Tingkat Lanjut
    Web scraping dalam skala besar memerlukan penanganan error yang kuat. Gunakan tenacity untuk percobaan ulang:

    pip install tenacity
    
    from tenacity import retry, stop_after_attempt, wait_exponential, retry_if_exception_type
    
    @retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=2, max=10))
    def fetch(url, proxies):
        response = requests.get(url, proxies=proxies, timeout=15)
        response.raise_for_status()
        return response
    

    Tangani error HTTP tertentu (misalnya, 403, 429) dan rotasi proxy saat gagal.

  8. Scraping Asinkron dengan aiohttp
    Untuk konkurensi tinggi, gunakan aiohttp dengan aiohttp_socks:

    import asyncio
    import aiohttp
    from aiohttp_socks import ProxyConnector
    
    async def fetch(session, url):
        async with session.get(url) as response:
            return await response.text()
    
    async def main():
        connector = ProxyConnector.from_url(f"socks5://{proxy_user}:{proxy_pass}@{proxy_host}:{proxy_port}")
        async with aiohttp.ClientSession(connector=connector) as session:
            html = await fetch(session, 'https://httpbin.org/ip')
            print(html)
    
    asyncio.run(main())
    
  9. Migrasi dari Dataimpulse
    Jika Anda memiliki kode yang ada yang menggunakan Dataimpulse, perbarui URL proxy dan kredensial. Biasanya, formatnya serupa, tetapi pastikan Anda menggunakan SOCKS5. Ganti endpoint Dataimpulse dengan milik Smartproxy. Uji secara menyeluruh untuk memastikan migrasi berhasil.

Pemecahan Masalah

  • Autentikasi gagal: Verifikasi nama pengguna dan kata sandi. Pastikan Anda menggunakan port yang benar untuk SOCKS5.
  • Waktu koneksi habis: Periksa apakah firewall Anda mengizinkan koneksi keluar pada port SOCKS5.
  • Kebocoran DNS: Gunakan socks5h:// alih-alih socks5:// untuk menyelesaikan DNS melalui proxy.
  • Kecepatan lambat: Coba lokasi proxy yang berbeda atau beralih ke proxy datacenter untuk kecepatan yang lebih cepat.
  • IP diblokir: Rotasi ke IP baru atau gunakan jenis proxy yang berbeda.

Ringkasan

Migrasi dari Dataimpulse ke Smartproxy di Linux sangatlah mudah. Dengan mengikuti langkah-langkah ini, Anda dapat menyiapkan proxy SOCKS5, menerapkan rotasi, dan menangani error untuk web scraping tingkat lanjut. Kumpulan IP Smartproxy yang besar dan dasbor yang ramah pengguna menjadikannya pilihan yang solid. Selalu patuhi ketentuan layanan dan robots.txt situs web target.