La creazione di un efficiente meccanismo di rotazione dei proxy è essenziale quando si affrontano attività di web scraping o data mining su larga scala. Mentre le prime fasi dei progetti di web scraping o di scansione su scala minima potrebbero essere sufficienti con una configurazione di base, la vera sfida si presenta quando si aumenta la scalabilità. Per mitigare rischi come il blocco IP e garantire la robustezza della tua infrastruttura di scraping, l'utilizzo di un sofisticato sistema di rotazione dei proxy diventa fondamentale.
Per tali scopi, l’utilizzo di un fornitore di servizi proxy professionale come OneProxy diventa prezioso. Con un pool diversificato di server proxy del data center, tali servizi possono migliorare notevolmente l'affidabilità e l'efficienza delle attività di scraping.
Di seguito, approfondiamo lo sviluppo di un rotatore proxy più avanzato utilizzando Python e Beautiful Soup, sfruttando i servizi di OneProxy per risultati ottimali.
Configurazione preliminare
Prima di iniziare, assicurati di avere Beautiful Soup e il requests
libreria installata nel tuo ambiente Python. Questi strumenti ti consentiranno di analizzare il contenuto HTML e gestire facilmente le richieste HTTP.
Il nostro script di rotazione dei proxy recupererà i proxy pubblici dal pool di proxy gratuito di OneProxy, a cui è possibile accedere all'indirizzo Elenco proxy gratuiti OneProxy. Questo elenco viene aggiornato regolarmente, offrendo una nuova serie di proxy per varie esigenze.
Codice di recupero di base
Innanzitutto, dobbiamo stabilire il codice di base per recuperare il contenuto HTML dall'elenco dei proxy gratuiti di OneProxy. Usiamo una stringa user-agent per emulare un browser web, il che aiuta a bypassare i rilevamenti bot di base basati sullo user-agent.
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import requests
url = https://oneproxy.pro/free-proxy/
def fetch_proxies(url):
header = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) ' +
'AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9'
}
response = requests.get(url, headers=header)
return response.content
Questa funzione recupera semplicemente il contenuto HTML dall'URL fornito.
Analisi dell'elenco dei proxy
IL BeautifulSoup
la libreria analizzerà il contenuto HTML per estrarre i proxy. I proxy sono generalmente elencati all'interno di una struttura di tabella sulla pagina Web, identificati da tag e attributi HTML specifici.
def parse_proxies(html_content):
soup = BeautifulSoup(html_content, 'lxml')
proxy_table = soup.select_one('#proxy-list-table') # Replace with the correct ID
proxies = []
for row in proxy_table.select('tr'):
columns = row.select('td')
if columns:
ip, port = columns[0].get_text(), columns[1].get_text()
proxies.append({'ip': ip, 'port': port})
return proxies
Proxy a rotazione
La seguente funzione orchestra la rotazione del proxy selezionando in modo casuale un proxy disponibile dall'elenco recuperato:
from random import choice
def rotate_proxies(proxies):
if proxies:
return choice(proxies)
else:
return None
Mettere tutto insieme
Combinando tutte le funzioni, lo script finale integra il recupero, l'analisi e la rotazione dei proxy, fornendo un sistema di rotazione dei proxy senza soluzione di continuità.
# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
from random import choice
# Functions previously defined: fetch_proxies, parse_proxies, rotate_proxies
proxies = [] # This will hold our list of proxies
def refresh_proxies():
global proxies
proxies = parse_proxies(fetch_proxies('https://oneproxy.pro/free-proxy/'))
def get_random_proxy():
if not proxies:
refresh_proxies()
return rotate_proxies(proxies)
# Main execution
refresh_proxies()
proxy = get_random_proxy()
print(proxy['ip'], proxy['port'])
Scalabilità professionale con OneProxy
Per gli ambienti di produzione in cui la scala si estende a migliaia di richieste, i pool di proxy gratuiti potrebbero non essere sufficienti per ragioni di affidabilità e velocità. In questo frangente, a servizio proxy a rotazione diventa essenziale.
OneProxy offre una soluzione solida con funzionalità come:
- Proxy globali ad alta velocità: Milioni di proxy di data center in tutto il mondo garantiscono connessioni rapide e ininterrotte.
- Rotazione IP automatica: gli indirizzi IP vengono ruotati senza interruzioni per impedire il rilevamento e i divieti.
- Rotazione delle stringhe utente-agente: imita le richieste di vari browser Web e versioni, migliorando la non rilevabilità dei bot.
- Risoluzione dei CAPTCHA: Integra la tecnologia per risolvere automaticamente i CAPTCHA, semplificando così il processo di scraping.
Con OneProxy, i clienti hanno affrontato trionfalmente le sfide del blocco IP, semplificando così i processi di estrazione dei dati web.
I servizi di OneProxy sono versatili e possono essere implementati in qualsiasi linguaggio di programmazione, soddisfacendo un'ampia gamma di progetti ed esigenze.
Offerta speciale: Sperimenta la potenza della rotazione proxy professionale con OneProxy. Inizia con 50.000 richieste senza alcun costo