Skip to content
Artikel / 4 menit baca

ProxyScrape Python dan Web: Cara Mengambil, Memvalidasi, dan Merotasi Proxy

ProxyScrape menawarkan daftar proxy yang dapat diunduh dan API, tetapi daftar gratis bukanlah infrastruktur produksi. Berikut alur kerja Python yang aman untuk mengambil, memvalidasi, dan merotasi proxy, plus apa yang harus diperiksa di dasbor web.

ProxyScrape sering dicari bersama Python karena pengguna ingin mengambil daftar proxy, mengujinya, dan merotasinya dalam sebuah skrip. Dasbor web dan API saling tumpang tindih, tetapi keduanya memiliki tujuan yang berbeda. Panduan ini berfokus pada alur kerja yang aman: mengambil, memvalidasi, merotasi, dan mengetahui kapan proxy gratis adalah alat yang salah.

Apa yang Anda Dapatkan dari ProxyScrape: Daftar Web, API, dan Pool Berbayar

ProxyScrape menyediakan unduhan daftar proxy dan akses API, bersama dengan layanan proxy komersial. Endpoint, protokol, format, batas, dan lokasi yang tersedia dapat berubah, jadi selalu konfirmasi di dasbor ProxyScrape atau dokumentasi terkini. Jangan men-hardcode endpoint yang Anda temukan di tutorial lama tanpa memeriksanya.

Daftar proxy gratis paling cocok untuk pembelajaran dan pengujian. Biasanya tidak cocok untuk scraping produksi, login, atau data sensitif apa pun karena uptime, kecepatan, dan tingkat kepercayaan sangat bervariasi.

Mengambil Daftar Proxy di Python

Mulailah dengan menyimpan URL API di variabel lingkungan alih-alih meng-commit-nya ke kode Anda.

import os
import requests

API_URL = os.environ['PROXYSCRAPE_API_URL']  # salin dari dasbor/dokumen ProxyScrape Anda

response = requests.get(API_URL, timeout=15)
response.raise_for_status()

lines = [line.strip() for line in response.text.splitlines() if line.strip()]
print(f'Fetched {len(lines)} proxies')
print(lines[:5])

Jika API mengembalikan JSON, periksa bentuk respons sebelum memilih field. Nama field dapat berubah.

data = response.json()
# Sesuaikan ini agar cocok dengan respons API saat ini
proxies = [item['proxy'] for item in data.get('proxies', [])]

Memvalidasi Proxy Sebelum Membuang Waktu Anda

Daftar proxy tidak berguna sampai Anda mengujinya. Validasi terhadap endpoint gema IP yang tidak berbahaya dan catat proxy mana yang berfungsi.

import concurrent.futures
import requests

TEST_URL = 'https://api.ipify.org?format=json'

def check(proxy):
    # Gunakan http:// untuk proxy HTTP.
    # Untuk SOCKS5, instal requests[socks] dan gunakan socks5h://host:port.
    proxy_url = f'http://{proxy}'
    proxies = {'http': proxy_url, 'https': proxy_url}
    try:
        response = requests.get(TEST_URL, proxies=proxies, timeout=8)
        response.raise_for_status()
        return proxy, response.json()
    except Exception:
        return proxy, None

working = []
with concurrent.futures.ThreadPoolExecutor(max_workers=50) as pool:
    for proxy, result in pool.map(check, lines[:200]):
        if result:
            working.append(proxy)
            print('OK', proxy, result)

print(f'Working: {len(working)}')

Untuk proxy SOCKS5, gunakan socks5h://host:port saat Anda ingin DNS remote. Untuk proxy dengan autentikasi, formatnya biasanya http://user:pass@host:port atau socks5h://user:pass@host:port, tetapi konfirmasi format penyedia.

Merotasi Proxy dalam Skrip Python

Setelah Anda memiliki kumpulan proxy yang berfungsi, rotasikan dengan strategi yang dapat diprediksi. Rotasi per permintaan itu mudah, tetapi dapat memutus sesi dan memicu pemeriksaan login.

import itertools
import requests
from requests.adapters import HTTPAdapter

working_proxies = working  # dari validator di atas
proxy_cycle = itertools.cycle(working_proxies)

session = requests.Session()
session.mount('https://', HTTPAdapter(max_retries=2))

urls = [
    'https://example.com/page/1',
    'https://example.com/page/2',
    'https://example.com/page/3',
]

for url in urls:
    proxy = next(proxy_cycle)
    proxies = {
        'http': f'http://{proxy}',
        'https': f'http://{proxy}',
    }
    try:
        response = session.get(url, proxies=proxies, timeout=12)
        print(response.status_code, proxy, url)
    except requests.RequestException as exc:
        print('FAILED', proxy, exc)

Jika situs target membutuhkan sesi yang stabil, gunakan sesi sticky alih-alih merotasi setiap permintaan. Banyak penyedia menerapkan ini melalui ID sesi di nama pengguna. Periksa dokumentasi penyedia Anda untuk format yang tepat; jangan menebak.

Menggunakan Dasbor Web ProxyScrape

Sisi web berguna untuk pemeriksaan cepat:

  • Unduh daftar dalam format yang Anda butuhkan.
  • Filter berdasarkan protokol, seperti HTTP atau SOCKS5, jika tersedia.
  • Filter berdasarkan negara atau tingkat anonimitas jika tersedia.
  • Salin endpoint API untuk otomatisasi.
  • Periksa apakah daftar itu gratis atau terikat pada paket berbayar.
  • Konfirmasi bahwa situs target mengizinkan jenis akses yang Anda rencanakan.

Jika daftar yang diunduh kedaluwarsa dalam beberapa menit, itu normal untuk proxy gratis. Anggap saja sebagai sekali pakai.

Pemeriksaan Etika, Keamanan, dan Hukum

  • Hormati ketentuan situs target, robots.txt, dan batas laju.
  • Jangan kirim kredensial, data pribadi, atau data pembayaran melalui proxy gratis yang tidak tepercaya.
  • Gunakan TLS dan verifikasi sertifikat.
  • Jika Anda memproses data pribadi, periksa GDPR, CCPA, dan aturan lain yang berlaku.
  • Gunakan proxy residensial atau datacenter berbayar saat Anda membutuhkan keandalan dan dukungan.

Intinya

ProxyScrape dapat digunakan dari dasbor web maupun Python, tetapi alur kerjanya lebih penting daripada sumbernya. Ambil daftar terkini, validasi, rotasi dengan tujuan, dan tempatkan proxy gratis di tempat yang seharusnya: dalam pengujian dan pembelajaran.