Beranda BlogPengikisan web Cara menggunakan proxy dengan permintaan Python

Cara menggunakan proxy dengan permintaan Python

oleh Kadek

Proxy adalah perantara yang dapat membantu Anda mengakses Internet dengan berbagai cara. Anda dapat melewati pemblokiran situs web, melewati batasan berbasis IP, dan meningkatkan fleksibilitas, keamanan, dan kinerja proyek Python Anda. Memahami cara kerja proxy dan cara menggunakannya secara efektif dapat membuka kemungkinan baru untuk proyek Anda.

Pada artikel ini, Anda akan mempelajari dasar-dasar penggunaan proxy dengan Python. Di akhir artikel ini, Anda akan dapat menggunakan proxy untuk mengakses situs web dan konten yang diblokir, melewati pembatasan geografis, dan melindungi privasi Anda dengan menyembunyikan alamat IP dan mengenkripsi lalu lintas Anda.

Memahami proxy

Server proxy adalah perantara antara Anda dan seluruh Internet. Saat Anda menggunakan proxy, Anda mengirimkan permintaan Anda ke proxy, menanyakan situs webnya, dan mengirimkan tanggapannya kembali. Ini memungkinkan Anda melewati pemblokiran situs web, meskipun pemblokiran tersebut didasarkan pada alamat IP atau lokasi geografis Anda.

Proxy bermanfaat dalam web scraping. Saat menjelajahi suatu situs web, Anda berisiko diblokir karena tidak semua situs web cocok untuk bot. Namun, menggunakan proxy dapat membantu Anda menghindari pemblokiran. Jika situs web mendeteksi scraper Anda, itu hanya akan memblokir proxy, yang dapat Anda ubah dengan mudah.

Selain itu, Anda dapat menggunakan proxy berputar yang secara otomatis diganti setelah waktu tertentu atau ketika diblokir. Kami telah menulis tentang apa yang harus diperhatikan ketika memilih proxy yang berputar dan di mana menemukannya.

Anda juga dapat menggunakan proxy gratis jika Anda tidak ingin membelinya. Mereka kurang dapat diandalkan dan tahan lama, tetapi mudah ditemukan dan diganti dengan yang baru jika perlu.

persyaratan

Untuk menggunakan proxy dengan Python, Anda memerlukan perpustakaan Permintaan, perpustakaan paling populer dan paling sederhana untuk mengirim permintaan HTTP. Jika Anda sudah menginstal Python, Anda harus memilikinya. Namun, jika karena alasan tertentu Anda tidak memilikinya, Anda dapat menginstalnya menggunakan perintah berikut:

pip install requests

Selain persyaratan di atas, Anda memerlukan keterampilan pemrograman dasar dan editor teks. Untuk kenyamanan, disarankan menggunakan editor teks dengan penyorotan sintaksis, mis. B. Kode Visual Studio atau Sublime.

Pada artikel ini kami menggunakan Python 3.10.7. Jika Anda menggunakan Python 2, perintah dalam artikel ini mungkin tidak cocok untuk Anda.

Penggunaan dasar

Mari kita lihat cara membuat permintaan sederhana menggunakan berbagai jenis proxy. Ini akan membantu Anda memahami cara menggunakan proxy dengan perpustakaan Permintaan. Namun, sebelum kita melakukannya, mari kita buat permintaan sederhana tanpa proxy.

Buat file baru dengan ekstensi *.py dan impor perpustakaan Permintaan:

import requests 

Kemudian buatlah variabel untuk menyimpan alamat website yang ingin diakses. Untuk kenyamanan, kami menggunakan situs web yang mengembalikan alamat IP Anda sebagai tanggapan. Ini nantinya akan berguna untuk memastikan proxy berfungsi.

url="https://httpbin.org/ip"

Sekarang minta URL yang ditentukan dan tampilkan hasilnya di layar:

response = requests.get(url)
print(response.text)

Anda akan menerima respons serupa dengan ini:

{
  "origin": "151.115.44.26"
}

Sekarang mari tambahkan proxy ke permintaan dasar ini.

Proksi HTTP/HTTPS

Proksi HTTP adalah jenis proksi yang paling umum dan hemat biaya. Namun, mereka menggunakan koneksi tidak terenkripsi, sehingga kurang aman. Proksi HTTPS menggunakan metode koneksi yang sama tetapi mengenkripsi data, sehingga lebih andal.

Untuk menggunakan proxy kita perlu membuat variabel. Jika Anda ingin menggunakan proxy untuk permintaan HTTP, kode Anda terlihat seperti ini:

proxies = {
    'http': 'http://45.95.147.106:8080',
}

Dan untuk proksi HTTPS:

proxies = {
    'https': 'https://37.187.17.89:3128',
}

Atau Anda dapat menentukan kedua jenis proxy secara bersamaan:

proxies = {
    'http': 'http://45.95.147.106:8080',
    'https': 'https://37.187.17.89:3128'
}

Untuk menggunakan proksi dengan permintaan Python, tentukan hal berikut Proksi parameter dan atur nilainya ke variabel yang sesuai. Ini memastikan bahwa permintaan dijalankan melalui proxy.

response = requests.get(url, proxies=proxies)

Menggunakan proxy HTTP/HTTPS dengan perpustakaan Permintaan relatif mudah. Jadi mari kita lihat cara mengatur proxy SOCKS.

Proksi SOCKS

Proksi SOCKS, khususnya SOCKS5, lebih fleksibel dan umum dalam mendukung berbagai jenis lalu lintas dan metode otentikasi. Mereka sering kali lebih disukai untuk aplikasi yang memerlukan jangkauan proxy yang lebih luas.

Untuk menggunakan proxy SOCKS, Anda perlu menginstal paket “requests(socks)” tambahan:

pip install requests(socks)

Sekarang Anda dapat menentukan dan menggunakan alamat IP proxy SOCKS dalam variabel dalam kode Anda.

proxies = {
    'http': 'socks5://24.249.199.4:41458',
    'https': 'socks5://24.249.199.4:41458'
}

Gunakan proxy SOCKS jika Anda memerlukan lebih banyak fungsi dalam aplikasi Anda.

Minta metode dengan proxy

Sebelum kita beralih ke metode otorisasi server proxy dan penggunaan sesi, mari kita lihat jenis permintaan yang dapat dilakukan menggunakan pustaka permintaan.

metode DAPATKAN

Ini adalah jenis permintaan yang paling sederhana dan paling umum digunakan. Ini memungkinkan Anda mengambil semua data yang terletak di URL yang ditentukan. Secara umum, permintaan ini berbentuk sebagai berikut:

response = requests.get(target_url, proxies=proxies)

Gunakan metode ini ketika Anda ingin mengambil konten halaman web.

metode POSTING

Cara selanjutnya adalah POST. Ini memungkinkan Anda mengirim data apa pun ke URL yang ditentukan. Namun, ini tidak berarti Anda tidak akan menerima data apa pun sebagai imbalannya. Biasanya, saat Anda mengirim data ke server menggunakan permintaan POST, Anda menerima respons dari server yang mungkin berisi data yang diperlukan. Berikut adalah contoh permintaan POST:

response = requests.post(target_url, data=data, proxies=proxies)

Metode ini kurang umum digunakan, namun dapat berguna saat bekerja dengan API.

Metode lain

Metode lainnya jarang digunakan, jadi untuk kenyamanan kami merangkum deskripsi dan contoh penggunaannya dalam sebuah tabel.

metode

Keterangan

Contoh

MENGATUR

Perbarui data di server

permintaan.put(target_url, data=data, proksi=proksi)

MENGHAPUS

Hapus data dari server

permintaan.hapus(target_url, proksi=proksi)

KEPALA

Dapatkan header untuk sumber daya yang terletak di URL

permintaan.head(target_url, proksi=proksi)

PILIHAN

Cari tahu tentang pilihan komunikasi

permintaan.pilihan(target_url, proksi=proksi)

tambalan

Terapkan perubahan parsial pada sumber daya

permintaan.patch(target_url, data=data, proksi=proksi)

MENGHUBUNG

Buat koneksi jaringan ke sumber daya yang biasanya digunakan dengan proksi untuk tujuan penerowongan

permintaan.connect(target_url, proksi=proksi)

MELACAK

Dapatkan jejak diagnostik komunikasi antara klien dan server

permintaan.request('TRACE', target_url, proksi=Proksi)

Seperti yang Anda lihat, setiap metode yang dibahas dapat digunakan dengan proxy jika diperlukan.

Bekerja dengan sesi

Sesi adalah alat yang sangat berguna jika Anda ingin menyetel beberapa pengaturan satu kali dan menggunakannya di beberapa koneksi. Sesi memungkinkan Anda menggunakan koneksi yang sama yang sudah ada daripada harus membuat koneksi baru setiap kali.

Sesi mempertahankan pengaturan, cookie, header, dan informasi lainnya di antara beberapa permintaan. Ini mempertahankan status dan otentikasi di semua permintaan. Misalnya, jika Anda masuk ke situs web dengan satu permintaan atau ingin menggunakan proxy yang sama untuk semua permintaan, sesi tersebut akan membuat Anda tetap masuk untuk permintaan berikutnya.

Untuk menggunakan proxy dengan permintaan Python untuk seluruh sesi, Anda harus terlebih dahulu membuat objek Session dan mengatur alamat IP proxy untuk objek tersebut:

import requests

url="https://httpbin.org/ip"

session = requests.Session()
session.proxies = {
    'http': 'http://45.95.147.106:8080',
    'https': 'http://45.95.147.106:8080'
}

Sekarang ketika Anda membuat permintaan sesi, yang harus Anda lakukan adalah menentukan sesi dan URL. Proksi yang ditentukan sebelumnya digunakan.

response = session.get(url)

Setelah Anda selesai mengerjakan suatu sesi, Anda harus menutupnya:

session.close()

Saat menggunakan perpustakaan permintaan, Anda dapat mengatur dan beralih di antara beberapa sesi. Ini memungkinkan Anda mengonfigurasi koneksi sesuai kebutuhan.

Otentikasi proksi

Untuk menggunakan proxy yang dilindungi dan pribadi, Anda harus menggunakan nama pengguna dan kata sandi pribadi. Namun, metode autentikasi berbeda untuk jenis proksi yang berbeda. Mari kita lihat satu per satu.

Otentikasi proksi HTTP/HTTPS

Untuk mengautentikasi ke proxy HTTP/HTTPS, Anda cukup memberikan nama pengguna dan kata sandi sebagai bagian dari URL proxy, misalnya:

http://{proxy_username}:{proxy_password}@{http_proxy_url}

Anda kemudian dapat membuat permintaan seperti pada contoh sebelumnya.

Otentikasi proksi SOCKS

Otentikasi di proxy SOCKS sedikit berbeda. Berbeda dengan contoh sebelumnya, Anda harus mengautentikasi selama permintaan:

import requests

response = requests.get(target_url, proxies=proxies, auth=(proxy_username, proxy_password))

Alternatifnya, Anda dapat membuat sesi dan menggunakannya untuk mengatur parameter autentikasi:

session.auth = ('username', 'password')

Kalau tidak, kodenya sama.

Teknik proksi tingkat lanjut

Selain topik yang kami bahas, ada banyak cara lain untuk menggunakan proxy dengan perpustakaan Permintaan. Mari kita lihat cara menggunakan variabel lingkungan untuk menyederhanakan kode Anda dan cara merotasi proxy.

Minta variabel lingkungan

Variabel lingkungan adalah variabel tingkat sistem yang mengonfigurasi berbagai pengaturan dan perilaku aplikasi perangkat lunak, termasuk program Python. Saat mengonfigurasi pengaturan proksi untuk program Python yang menggunakan pustaka permintaan, Anda dapat menggunakan variabel lingkungan untuk menentukan informasi proksi.

Pendekatan ini memungkinkan Anda untuk memisahkan konfigurasi proxy dari kode Anda, sehingga memudahkan pengelolaan pengaturan proxy, terutama di lingkungan yang berbeda atau saat berbagi kode.

Anda dapat mengatur variabel lingkungan untuk proksi HTTP/HTTPS secara manual atau menggunakan perintah berikut:

export HTTP_PROXY=http://username:(email protected):8080
export HTTPS_PROXY=https://username:(email protected):8080

Kami telah menulis panduan rinci tentang variabel lingkungan, pengaturan dan tujuannya. Jika Anda memiliki masalah atau pertanyaan, Anda dapat menghubungi pemandu kami.

Keuntungan utama menggunakan variabel lingkungan adalah Anda tidak perlu menentukan proxy dalam kode Anda. Mereka secara otomatis digunakan untuk semua permintaan.

Rotasi IP dan kumpulan proxy

Rotasi IP dan kumpulan proksi adalah teknik yang digunakan untuk merotasi atau mengubah alamat IP untuk permintaan web dengan Python menggunakan perpustakaan permintaan. Teknik-teknik ini berguna untuk pengikisan web, pengumpulan data, atau tugas lain di mana Anda perlu menghindari larangan IP, batas kecepatan, atau akses ke konten yang dibatasi secara geografis.

Untuk menggunakan Rotating Proxy, Anda dapat menggunakan contoh sebelumnya. Cukup ganti proxy tertentu dengan URL server:

import requests

proxies = {
    'http': 'http://your-proxy-service-url.com',
    'https': 'http://your-proxy-service-url.com'
}

Kumpulan proxy melibatkan pemeliharaan kumpulan atau daftar server proxy (kamus proxy) dan beralih melaluinya secara manual. Anda dapat membuat atau mendapatkan daftar server proxy dan kemudian menggunakannya satu per satu untuk permintaan Anda, menelusuri daftar tersebut sesuai kebutuhan.

proxy_pool = ('http://45.95.147.105:8080', 'http://45.95.147.106:8080', 'http://45.95.147.107:8080')

for proxy_url in proxy_pool:
    # YOUR CODE

Alternatifnya, Anda dapat memilih proxy acak dari daftar:

import random

proxy_pool = ('http://45.95.147.105:8080', 'http://45.95.147.106:8080', 'http://45.95.147.107:8080')

num = random.randint(1, len(proxy_pool)-1)
proxies = {
  "http://": proxy_pool(num)
}

Mengelola kumpulan proksi atau rotasi proksi secara manual adalah tugas kompleks yang memerlukan pengelolaan, pemecahan masalah, dan pemantauan yang cermat untuk memastikan bahwa rotasi IP berjalan lancar dan potensi masalah segera teratasi. Penting juga untuk mendapatkan server proxy dari sumber terpercaya untuk menghindari masalah keamanan dan keandalan.

Diploma

Pada artikel ini, kita menjelajahi dasar-dasar penggunaan proxy dengan pustaka Permintaan Python. Proksi adalah alat canggih yang dapat meningkatkan tugas terkait web Anda dengan Python. Baik Anda ingin melindungi privasi, mengakses konten yang diblokir, meningkatkan kinerja, atau mengubah alamat IP, proxy dapat membantu Anda mencapai tujuan.

Dengan pengetahuan dan alat yang tepat, Anda dapat memanfaatkan kekuatan proxy untuk membuka kemungkinan baru untuk proyek Python Anda. Misalnya, Anda dapat menggunakan proxy untuk menjelajahi situs web, mengumpulkan data, mengotomatiskan tugas media sosial, dan menjelajahi Internet secara anonim.

Jika Anda mencari solusi yang lebih tangguh, platform dan layanan integrasi proxy komersial juga tersedia. Platform ini dapat menyediakan berbagai fitur seperti: B. Rotasi proxy, otentikasi dan verifikasi SSL.

Apa pun kebutuhan Anda, ada solusi proxy yang cocok untuk Anda. Dengan memahami dasar-dasar proxy dan cara menggunakannya secara efektif, Anda dapat meningkatkan tugas terkait web dan meningkatkan keamanan, kinerja, dan keandalan aplikasi Anda.

Pos terkait

Tinggalkan Komentar