Rumah >pembangunan bahagian belakang >Tutorial Python >Mengikis Web dengan Proksi Berputar: Contoh dengan Permintaan Python dan Selenium

Mengikis Web dengan Proksi Berputar: Contoh dengan Permintaan Python dan Selenium

DDD
DDDasal
2024-11-01 13:01:29666semak imbas

Menggunakan proksi berputar untuk mengikis web ialah cara yang berkesan, terutamanya apabila anda perlu mengakses tapak web dengan kerap atau memintas mekanisme anti perangkak. Proksi berputar boleh menukar alamat IP secara automatik, dengan itu mengurangkan risiko disekat.

Berikut ialah contoh menggunakan proksi berputar dengan perpustakaan permintaan Python dan Selenium untuk mengikis web.

Menggunakan perpustakaan permintaan

1. Pasang perpustakaan yang diperlukan:

Pertama sekali, anda perlu memasang perpustakaan permintaan.

2. Konfigurasikan proksi berputar:

Anda perlu mendapatkan kunci API atau senarai proksi daripada pembekal perkhidmatan proksi berputar dan konfigurasikannya dalam permintaan.

Web Scraping with Rotating Proxies: An Example with Python Requests and Selenium

3. Hantar permintaan:

Gunakan perpustakaan permintaan untuk menghantar permintaan HTTP dan memajukannya melalui proksi.

Kod sampel:

import requests 
from some_rotating_proxy_service import get_proxy  # Assuming this is the function provided by your rotating proxy service 

#Get a new proxy 
proxy = get_proxy() 

# Set the proxy's HTTP and HTTPS headers (may vary depending on the proxy service's requirements) 
proxies = { 
    'http': f'http://{proxy}', 
    'https': f'https://{proxy}' 
} 

# Sending a GET request 
url = 'http://example.com' 
try: 
    response = requests.get(url, proxies=proxies) 
    # Processing Response Data 
    print(response.text) 
except requests.exceptions.ProxyError: 
    print('Proxy error occurred') 
except Exception as e: 
    print(f'An error occurred: {e}') 

Menggunakan Selenium

1. Pasang perpustakaan dan pemacu yang diperlukan:

Pasang pustaka Selenium dan WebDriver untuk penyemak imbas anda (seperti ChromeDriver).

2. Konfigurasikan proksi berputar:

Sama seperti permintaan, anda perlu mendapatkan maklumat proksi daripada pembekal perkhidmatan proksi berputar dan mengkonfigurasinya dalam Selenium.

3. Lancarkan penyemak imbas dan tetapkan proksi:

Lancarkan penyemak imbas menggunakan Selenium dan tetapkan proksi melalui pilihan penyemak imbas.

Kod sampel:

from selenium import webdriver 
from selenium.webdriver.chrome.options import Options 
from some_rotating_proxy_service import get_proxy  # Assuming this is the function provided by your rotating proxy service 

# Get a new proxy 
proxy = get_proxy() 

# Set Chrome options to use a proxy 
chrome_options = Options() 
chrome_options.add_argument(f'--proxy-server=http://{proxy}') 

# Launch Chrome browser 
driver = webdriver.Chrome(options=chrome_options) 

# Visit the website 
url = 'http://example.com' 
driver.get(url) 

# Processing web data 
# ...(For example, use driver.page_source to get the source code of a web page, or use driver to find a specific element.) 

# Close the browser 
driver.quit() 

Perkara yang perlu diperhatikan

Pastikan perkhidmatan proksi berputar boleh dipercayai dan menyediakan kumpulan proksi yang mencukupi untuk mengelakkan perubahan IP dan sekatan yang kerap.
Rancang tugas mengikis anda dengan betul mengikut harga dan had penggunaan perkhidmatan proksi berputar.
Apabila menggunakan Selenium, beri perhatian kepada pengendalian penutupan tetingkap penyemak imbas dan keluaran sumber untuk mengelakkan kebocoran memori atau masalah lain.
Patuhi fail robots.txt tapak web sasaran dan perjanjian merangkak untuk mengelakkan pertikaian undang-undang.

Atas ialah kandungan terperinci Mengikis Web dengan Proksi Berputar: Contoh dengan Permintaan Python dan Selenium. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn