Jika anda telah bekerja dengan Python untuk seketika, terutamanya dalam kes pengikisan data tertentu, anda mungkin menghadapi situasi di mana anda disekat semasa cuba mendapatkan semula data yang anda mahu. Dalam situasi sedemikian, mengetahui cara menggunakan proksi adalah kemahiran yang berguna untuk dimiliki.
Dalam artikel ini, kami akan meneroka apa itu proksi, sebab ia berguna dan cara anda boleh menggunakannya menggunakan permintaan perpustakaan dalam Python.
Mari kita mulakan dari awal dengan mentakrifkan apa itu proksi.
Anda boleh menganggap pelayan proksi sebagai "orang tengah" antara komputer anda dan internet. Apabila anda menghantar permintaan ke tapak web, permintaan itu melalui pelayan proksi terlebih dahulu. Proksi kemudiannya memajukan permintaan anda ke tapak web, menerima respons dan menghantarnya kembali kepada anda. Proses ini menutup alamat IP anda, menjadikannya kelihatan seolah-olah permintaan itu datang daripada pelayan proksi dan bukannya peranti anda sendiri.
Seperti yang boleh difahami, ini mempunyai banyak akibat dan kegunaan. Contohnya, ia boleh digunakan untuk memintas beberapa sekatan IP yang menjengkelkan atau mengekalkan kerahasiaan.
Jadi, mengapakah proksi boleh membantu semasa mengikis data? Baiklah, kami sudah memberi alasan sebelum ini. Contohnya, anda boleh menggunakannya untuk memintas beberapa sekatan.
Jadi, dalam kes pengikisan web tertentu, ia boleh berguna atas sebab berikut:
Pustaka permintaan ialah pilihan popular untuk membuat permintaan HTTP dalam Python dan memasukkan proksi ke dalam permintaan anda adalah mudah.
Jom lihat caranya!
Perkara pertama dahulu: anda perlu mendapatkan proksi yang sah sebelum benar-benar menggunakannya. Untuk berbuat demikian, anda mempunyai dua pilihan:
Sekarang anda mempunyai senarai proksi anda, anda boleh mula menggunakannya. Contohnya, anda boleh mencipta kamus seperti itu:
proxies = { 'http': 'http://proxy_ip:proxy_port', 'https': 'https://proxy_ip:proxy_port', }
Kini anda boleh membuat permintaan menggunakan proksi:
import requests proxies = { 'http': 'http://your_proxy_ip:proxy_port', 'https': 'https://your_proxy_ip:proxy_port', } response = requests.get('https://httpbin.org/ip', proxies=proxies)
Untuk melihat hasil permintaan anda, anda boleh mencetak jawapan:
print(response.status_code) # Should return 200 if successful print(response.text) # Prints the content of the response
Perhatikan bahawa, jika semuanya berjalan lancar, respons harus memaparkan alamat IP pelayan proksi, bukan milik anda.
Jika proksi anda memerlukan pengesahan, anda boleh mengendalikannya dalam beberapa cara.
Kaedah 1: termasuk Bukti Kelayakan dalam URL Proksi
Untuk memasukkan nama pengguna dan kata laluan untuk mengurus pengesahan dalam proksi anda, anda boleh berbuat demikian:
proxies = { 'http': 'http://username:password@proxy_ip:proxy_port', 'https': 'https://username:password@proxy_ip:proxy_port', }
Kaedah 2: menggunakan HTTPProxyAuth
Sebagai alternatif, anda boleh menggunakan kelas HTTPProxyAuth untuk mengendalikan pengesahan seperti itu:
from requests.auth import HTTPProxyAuth proxies = { 'http': 'http://proxy_ip:proxy_port', 'https': 'https://proxy_ip:proxy_port', } auth = HTTPProxyAuth('username', 'password') response = requests.get('https://httpbin.org/ip', proxies=proxies, auth=auth)
Menggunakan satu proksi mungkin tidak mencukupi jika anda membuat banyak permintaan. Dalam kes ini, anda boleh menggunakan proksi berputar: ini menukar alamat IP proksi pada selang masa yang tetap atau setiap permintaan.
Jika anda ingin menguji penyelesaian ini, anda mempunyai dua pilihan: putar proksi secara manual menggunakan senarai atau menggunakan perkhidmatan penggiliran proksi.
Mari lihat kedua-dua pendekatan!
Jika anda mempunyai senarai proksi, anda boleh memutarkannya secara manual seperti:
import random proxies_list = [ 'http://proxy1_ip:port', 'http://proxy2_ip:port', 'http://proxy3_ip:port', # Add more proxies as needed ] def get_random_proxy(): proxy = random.choice(proxies_list) return { 'http': proxy, 'https': proxy, } for i in range(10): proxy = get_random_proxy() response = requests.get('https://httpbin.org/ip', proxies=proxy) print(response.text)
Perkhidmatan seperti ScraperAPI mengendalikan penggiliran proksi untuk anda. Anda biasanya hanya perlu mengemas kini URL proksi yang mereka sediakan dan mengurus kamus URL seperti itu:
proxies = { 'http': 'http://your_service_proxy_url', 'https': 'https://your_service_proxy_url', } response = requests.get('https://httpbin.org/ip', proxies=proxies)
Menggunakan proksi dalam Python ialah teknik yang berharga untuk mengikis web, menguji dan mengakses kandungan geo-terhad. Seperti yang telah kita lihat, menyepadukan proksi ke dalam permintaan HTTP anda adalah mudah menggunakan permintaan perpustakaan.
Beberapa petua perpisahan apabila mengikis data daripada web:
Selamat mengekod!
Atas ialah kandungan terperinci Cara Menggunakan Proksi dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!