Singkatnya, proxy adalah server yang berfungsi sebagai lapisan luar yang menghubungkan ke layanan jaringan. Mereka berfungsi sebagai perantara untuk komputer dan situs tempat pengguna ingin mengekstrak informasi. Permintaan pengguna, alih-alih langsung dikirim ke situs yang relevan, pertama-tama diarahkan ke proxy yang kemudian mengirimkannya ke server akhir. Oleh karena itu, alamat IP server proxy adalah alamat IP yang disimpan oleh situs, bukan alamat IP pengguna.
Jadi, mengapa menggunakan proxy?
Misalnya, jika ada kebutuhan untuk mengumpulkan informasi dari sebuah situs tanpa takut akan pembatasan atau pemblokiran. Proksi membantu menyamarkan alamat IP pengguna yang sebenarnya dan mengubah identitas digital mereka yang sebenarnya.
Sebuah proksi dari negara tertentu yang tidak memiliki pembatasan dapat digunakan. Hal ini karena, di negara tertentu, akses ke beberapa program dan situs web dibatasi atau diblokir.
Jika sejumlah besar permintaan dikirim ke situs tertentu, kemungkinan besar sistem akan dimuat. Akibatnya, ada risiko besar untuk diblokir. Menggunakan beberapa proksi pada saat yang sama memungkinkan pengguna untuk mendistribusikan permintaan secara merata ke situs tertentu, sehingga menghindari pemblokiran.
Requests adalah pustaka untuk mengirim permintaan HTTP menggunakan Python. Ini memudahkan untuk melakukan permintaan GET dan POST. Menggunakan Python Requests tanpa proxy dapat mengirim permintaan HTTP, tetapi tidak memberikan anonimitas atau melewati batasan.
Untuk menginstal request, cukup masukkan perintah di bawah ini di terminal:
pip install requests
Untuk memverifikasi bahwa pustaka yang diperlukan telah diatur dengan benar, Anda perlu membuka lingkungan pengembangan Python dan menjalankan perintah:
import requests
print(requests.__version__)
Jika semuanya dilakukan dengan benar, skrip akan mengembalikan nomor versi.
Setelah kita menginstal library requests, kita dapat mulai mengeksekusi permintaan HTTP. Namun, untuk memasukkan proxy, konfigurasi tertentu dalam Python harus dilakukan.
Mari kita lihat langkah-langkah yang harus diikuti untuk mengonfigurasi proxy dengan benar untuk permintaan di Python. Kita akan membahas Python Requests dengan konfigurasi proxy SOCKS secara terpisah.
Menggunakan Python untuk menyiapkan proxy sangat mudah bagi pengguna yang menggunakan pustaka permintaan. Ini mengharuskan alamat server proxy dilewatkan dalam kamus dan kemudian digunakan saat membuat permintaan HTTP.
proxies = {
"http": "http://your-proxy-ip:port",
"https": "http://your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
Ketika menggunakan Python Requests, autentikasi proksi mudah diatur. Mari kita lihat lebih dekat detailnya.
proxies = {
"http": "http://username:password@your-proxy-ip:port",
"https": "http://username:password@your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
Dua bidang baru yang perlu diisi adalah:
Untuk pengguna yang membutuhkan tingkat anonimitas yang lebih tinggi, atau jika Anda bekerja dengan situs yang sangat dibatasi, proksi HTTP standar mungkin tidak berfungsi. Dalam hal ini, proksi SOCKS mungkin lebih baik.
Untuk mengaktifkan dukungan proxy SOCKS, perpustakaan tambahan perlu diinstal menggunakan perintah yang tercantum di bawah ini:
pip install requests[socks]
Setelah terinstal, Python Requests memungkinkan Anda untuk menyiapkan proksi SOCKS yang dapat digunakan seperti yang ditunjukkan pada contoh di bawah ini.
import requests
proxies = {
"http": "socks5h://your-proxy-ip:port",
"https": "socks5h://your-proxy-ip:port",
}
response = requests.get("http://example.com", proxies=proxies)
Jika server proxy memerlukan autentikasi, sertakan seperti yang ditunjukkan di bawah ini.
proxies = {
"http": "socks5h://username:password@your-proxy-ip:port",
"https": "socks5h://username:password@your-proxy-ip:port",
}
Ketika membuat banyak permintaan melalui satu proxy, alih-alih menambahkannya ke setiap permintaan, akan jauh lebih efisien untuk menggunakan sesi Python Requests dengan proxy.
Metode penggunaan proxy ini membantu dalam mempertahankan pengaturan di semua sesi. Metode ini juga menyederhanakan kode, meningkatkan kinerja, dan yang paling penting, membuat implementasi menjadi lebih mudah.
Sangat mudah untuk membuat sebuah sesi, cukup ketik requests.Session().
Perhatikan contoh berikut ini:
import requests
# Membuat sesi
session = requests.Session()
session.proxies = {
"http": "http://username:password@your-proxy-ip:port",
"https": "http://username:password@your-proxy-ip:port",
}
# Permintaan melalui sesi
response = session.get("http://example.com")
Semua Python Requests dalam sesi ini akan menggunakan proksi yang ditetapkan secara default tanpa konfigurasi tambahan.
Ketika Anda secara aktif terlibat dengan sebuah situs web baik untuk tujuan scraping atau untuk otomatisasi, menggunakan proxy yang sama berulang kali dapat membuat akun Anda diblokir. Hal ini dapat diatasi dengan merotasi proksi jika Anda memiliki beberapa server proksi yang berbeda.
Contoh berikut ini menunjukkan implementasi perulangan yang memutar proxy untuk setiap interaksi dengan halaman web:
import requests
import random
proxies_list = [
"http://username:password@your-proxy-ip[1]:port",
"http://username:password@your-proxy-ip[2]:port",
"http://username:password@your-proxy-ip[3]:port",
]
session = requests.Session()
for _ in range(5):
proxy = random.choice(proxies_list) # Pilih proxy secara acak
session.proxies = {"http": proxy, "https": proxy}
response = session.get("http://example.com")
print(f"Used proxy: {proxy}")
print(response.status_code)
Sebagai kesimpulan, berikut ini beberapa saran yang mungkin dapat membantu Anda mengelola proksi dengan lebih baik:
Pada artikel ini, kita telah membahas apa itu server proxy, bagaimana menggunakan proxy dalam Python Requests dengan benar, dan mengelola proxy melalui sesi untuk menyederhanakan kode. Contoh ini juga menunjukkan penggunaan proxy SOCKS dan proxy biasa, bagaimana autentikasi ditangani, dan manajemen proxy.
Komentar: 0