# Proxy Python Requests: Memakai Proxy ISP Statis | ProxyJam

Cara mengatur proxy di Python requests: per request, per session, dan lewat SOCKS5 dengan DNS jarak jauh, dengan kode teruji untuk satu alamat ISP statis.

- Canonical: https://proxyjam.com/id/integrations/python-requests/
- Updated: 2026-10-23
- Language: id

Arahkan requests ke satu alamat ISP statis: satu IP di jaringan penyedia internet yang disebutkan namanya, tetap milik Anda selama periode yang Anda bayar. Kode di bawah dijalankan terhadap proxy yang memerlukan autentikasi sebelum diterbitkan.


Berikan kamus proxies dengan kunci http dan https, masing-masing berisi http://USERNAME:PASSWORD@HOST:PORT, dan requests mengirim panggilan melalui proxy; target HTTPS melewatinya sebagai tunnel. Untuk SOCKS5, instal requests[socks], alihkan proxy ke SOCKS5 pada pesanan Anda, dan pakai skema socks5h, sehingga hostname diresolusi oleh proxy, bukan oleh mesin Anda.


## Mengatur proxy di Python requests

1. **Salin empat nilai dari pesanan Anda** Host, port, nama pengguna, dan kata sandi, dari Proxy Saya di dasbor atau dari pesanan di API. Setiap alamat punya empat nilainya sendiri; tidak ada gateway bersama.
2. **Susun satu URL proxy** `http://USERNAME:PASSWORD@HOST:PORT`. Jika kata sandi berisi `/`, `?`, `#`, atau `%`, lakukan URL-encode terlebih dahulu dengan `urllib.parse.quote(password, safe="")`.
3. **Atur untuk kedua skema** Berikan URL yang sama ke kunci `http` dan `https`. Jika hanya `http` yang diatur, setiap request HTTPS tidak melalui proxy dan keluar dari alamat Anda sendiri.
4. **Cek alamat keluar sekali** Minta halaman yang menampilkan IP pemanggil, atau buka [Berapa IP Saya](/id/what-is-my-ip/) melalui proxy yang sama, lalu pastikan itu alamat yang Anda beli.
5. **Jalankan pekerjaan dengan timeout** Selalu berikan `timeout=`: secara default requests menunggu tanpa batas, dan koneksi yang macet lalu terlihat seperti skrip yang hang.

## Kode teruji untuk requests

Setiap contoh terhubung melalui proxy HTTP dengan nama pengguna dan kata sandi, kecuali contoh SOCKS5, yang mengharuskan proxy dialihkan ke SOCKS5 terlebih dahulu; setelah itu pesanan menampilkan port baru dan kredensial baru yang harus dipakai. Ganti keempat nilai berhuruf kapital dengan nilai dari pesanan Anda.

### Per request

Berikan proxy ke satu panggilan.

```
import requests

# The four values come with your order (dashboard or API)
proxy = "http://USERNAME:PASSWORD@HOST:PORT"

response = requests.get(
    "https://example.com/",
    proxies={"http": proxy, "https": proxy},
    timeout=30,
)
response.raise_for_status()
print(response.status_code)
```

### Session

Atur proxy sekali untuk setiap panggilan dalam satu session.

```
import requests

proxy = "http://USERNAME:PASSWORD@HOST:PORT"

with requests.Session() as session:
    # HTTP_PROXY / HTTPS_PROXY in the environment would override
    # session.proxies; this makes the session use only its own setting.
    session.trust_env = False
    session.proxies.update({"http": proxy, "https": proxy})
    response = session.get("https://example.com/", timeout=30)
    response.raise_for_status()
    print(response.status_code)
```

### SOCKS5

SOCKS5 dengan hostname diresolusi di proxy.

```
# pip install "requests[socks]"
import requests

# Switch the proxy to SOCKS5 first; use the values the order then shows.
# socks5h: the proxy resolves the hostname, not your machine.
proxy = "socks5h://USERNAME:PASSWORD@HOST:PORT"

response = requests.get(
    "https://example.com/",
    proxies={"http": proxy, "https": proxy},
    timeout=30,
)
response.raise_for_status()
print(response.status_code)
```


## Di mana proxy bisa diatur di requests

|  | Cakupan | Kredensial | Kapan dipakai |
|---|---|---|---|
| proxies= pada panggilan | Hanya request itu | Di dalam URL | Skrip dengan beberapa panggilan saja |
| Session.proxies | Setiap request dalam session | Di dalam URL | Apa pun yang lebih panjang, dengan trust_env diatur ke False |
| HTTP_PROXY dan HTTPS_PROXY | Setiap panggilan requests dalam proses | Di dalam URL | Kode yang tidak bisa Anda ubah; NO_PROXY berisi host yang tidak melalui proxy |
| URL socks5h:// | Cakupan apa pun tempat ia diatur | Di dalam URL | Saat hostname harus diresolusi di proxy |

Dibaca dari dokumentasi requests dan dicek dengan contoh kode di halaman ini terhadap proxy lokal yang memerlukan autentikasi. Jika lebih dari satu diatur, argumen proxies pada panggilan mengalahkan environment, dan environment mengalahkan Session.proxies kecuali session mengatur trust_env ke False, seperti yang dilakukan contoh Session.


## Ke mana requests terhubung

- **Protokol:** HTTP, yang juga membawa HTTPS, atau SOCKS5, yang diaktifkan pada pesanan
- **Autentikasi:** Nama pengguna dan kata sandi, atau whitelist IP yang diatur melalui API
- **Alamat:** Satu IP statis selama periode, di jaringan penyedia internet yang disebutkan namanya
- **Rotasi:** Tidak ada: alamat yang sama pada setiap request

## Apa yang salah dengan requests dan proxy

### Hanya kunci http yang diatur

Kunci menyebut skema target, bukan skema proxy. Kamus yang hanya berisi http merutekan HTTP biasa dan membiarkan setiap panggilan HTTPS keluar langsung, tanpa error yang memberi tahu Anda.

### socks5 padahal yang dimaksud socks5h

Dengan socks5, mesin Anda meresolusi hostname dan memberikan IP ke proxy. Dengan socks5h, proxy yang meresolusinya, sehingga pencarian DNS dan jawabannya berasal dari jaringan proxy, dan ini penting untuk situs yang menjawab berdasarkan lokasi.

### Kata sandi yang merusak URL

Garis miring, tanda tanya, atau tanda pagar di kata sandi memotong URL, dan requests gagal sebelum mencapai proxy; tanda persen didekode sebagai escape. Lakukan URL-encode pada kata sandi, atau pakai autentikasi whitelist IP dan jangan sertakan kredensial.

### Variabel environment yang terlupa

requests membaca HTTP_PROXY, HTTPS_PROXY, dan NO_PROXY kecuali Anda mengatur trust_env ke False pada session, dan variabel tersebut mengalahkan Session.proxies. Variabel lama di server bisa mengirim trafik session ke tempat yang tidak Anda maksud, atau memintas proxy sama sekali.


## Pertanyaan tentang proxy di Python requests

### Bagaimana cara memakai proxy dengan autentikasi di Python requests?

Taruh nama pengguna dan kata sandi di URL proxy, http://USERNAME:PASSWORD@HOST:PORT, lalu berikan untuk kunci http dan https. requests mengirim kredensial ke proxy, yang menjawab 407 jika kredensialnya salah. Encode kata sandi yang berisi karakter khusus, atau pakai whitelist IP sebagai gantinya.

### Bagaimana cara memakai proxy SOCKS5 dengan requests?

Instal ekstranya dengan pip install requests[socks], alihkan proxy itu sendiri ke SOCKS5 pada pesanan Anda, dan pakai port serta kredensial yang kemudian ditampilkan pesanan dalam URL socks5h://. Mengganti skema saja tidak cukup: alamat yang diatur ke HTTP tidak menjawab SOCKS5 sampai dialihkan.

### Bisakah saya memakai autentikasi whitelist IP sebagai pengganti kata sandi?

Bisa. Tambahkan alamat IPv4 publik tempat skrip Anda berjalan ke whitelist proxy dengan satu panggilan API, PUT /orders/ORDER_ID/whitelist, atau melalui server MCP; dasbor belum punya kontrol untuk ini. Setelah itu proxy menerima koneksi dari alamat tersebut tanpa kredensial, lewat HTTP maupun SOCKS5, dan URL-nya menjadi http://HOST:PORT. Selama whitelist diatur, proxy hanya menerima alamat yang terdaftar dan nama pengguna serta kata sandi berhenti berfungsi untuk pesanan itu; mengirim daftar kosong mematikan whitelist dan login dengan kata sandi berfungsi lagi.

### Apakah alamatnya berganti antar-request?

Tidak. Proxy ISP statis adalah satu alamat selama periode yang Anda bayar, dan setiap request yang Anda kirim melaluinya keluar dari alamat itu. Jika sebuah pekerjaan memerlukan alamat berbeda per request, itu adalah pool rotasi, yang belum kami jual.

### Bagaimana cara mengecek IP yang dilihat situs?

Minta halaman yang menampilkan kembali alamat pemanggil melalui proxy yang sama, atau buka Berapa IP Saya dari browser yang diatur ke proxy itu. Jika yang tampil alamat Anda sendiri, kemungkinan kunci https belum ada.

### Untuk apa saya boleh memakai proxy ini?

Menguji situs Anda sendiri per wilayah, pemeriksaan kualitas, verifikasi iklan, riset harga dan pasar, serta perlindungan merek tidak memerlukan peninjauan menurut kebijakan penggunaan yang dapat diterima kami. Proxy ini tidak melewati CAPTCHA, deteksi bot, batas laju, atau pemblokiran akun, dan kebijakan tersebut melarang memakainya untuk mencoba hal itu.


Alamat statis cocok untuk pekerjaan yang harus datang dari tempat yang sama setiap kali: pemantauan, pemeriksaan regional, pengujian yang membandingkan hari ini dengan minggu lalu. Pesan satu alamat per pekerjaan di [Proxy ISP](/id/isp-proxies/), lihat [harga](/id/pricing/), dan jika pekerjaan yang sama berjalan di browser, panduan [Selenium](/id/integrations/selenium/) dan [Playwright](/id/integrations/playwright/) mengatur alamat yang sama di sana.



## Sumber

- [Requests documentation, Proxies](https://requests.readthedocs.io/en/latest/user/advanced/#proxies): argumen proxies, variabel environment, dan dukungan SOCKS
- [RFC 1928, SOCKS Protocol Version 5](https://www.rfc-editor.org/rfc/rfc1928): cara klien meminta tujuan ke proxy SOCKS5 berdasarkan nama atau alamat
- [RFC 3986, URI Generic Syntax](https://www.rfc-editor.org/rfc/rfc3986#section-3.2.1): bagian userinfo dari URL dan karakter yang harus di-encode di dalamnya




Python requests mengambil proxy-nya dari kamus yang memetakan skema URL target ke URL proxy. Panduan ini mengatur kamus tersebut untuk satu alamat ISP statis dan menunjukkan tiga tempat kamus itu bisa berada: pada panggilan, pada session, atau di environment.

## Proxy Python requests dengan nama pengguna dan kata sandi

Sebagian besar proxy, termasuk milik kami, meminta nama pengguna dan kata sandi. requests membacanya dari URL proxy dan mengirimnya ke proxy pada setiap koneksi. Untuk target HTTPS, proxy membuka tunnel dan tidak pernah melihat isi request. Tab kode menunjukkan bentuk per request dan bentuk session.

