# Pitone del selenio (4). Come utilizzare il selenio con Python e proxy

Scopri la potenza di Selenium con Python e sfrutta i proxy per un web scraping e un'automazione efficienti. Potenzia la tua raccolta dati con i server proxy convenienti di FineProxy.

- Autore: [Brandon Perry](https://fineproxy.org/it/brandon-perry/)
- Pubblicato: 2024-06-04T11:17:19.000Z
- Aggiornato: 2024-05-27T11:43:12.000Z
- URL canonico: https://fineproxy.org/it/selenium-python-4-how-to-use-selenium-with-python-and-proxies/

Quando si lavora con il web scraping o l'automazione utilizzando Selenium e Python, l'utilizzo dei proxy può essere essenziale per evitare divieti IP e migliorare l'efficienza della raccolta dati. Questo articolo ti guiderà attraverso la configurazione e l'utilizzo dei proxy in Selenium con Python.

## Cos'è il selenio e perché utilizzare i proxy?

**Selenium** è un potente strumento per automatizzare i browser web, spesso utilizzato per il web scraping e per testare le applicazioni web. **Proxy** sono server intermedi che separano gli utenti finali dai siti web che navigano, aiutando a mascherare gli indirizzi IP e a gestire i carichi di richieste.

## Configurazione del selenio con i proxy

Prima di immergerti nel codice, assicurati di aver installato gli strumenti necessari:

-   Python
-   Selenio (`pip install selenium`)
-   Un driver del browser Web (ad esempio ChromeDriver per Chrome o GeckoDriver per Firefox)

## Guida dettagliata all'utilizzo dei proxy in Selenium

### 1\. Configurazione di Chrome con un proxy

Per configurare Chrome per utilizzare un server proxy, è necessario impostare le funzionalità desiderate in Selenium.

```python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Specify proxy details
proxy = "your_proxy_ip:port"

# Set up Chrome options
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy}')

# Initialize WebDriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)

# Open a website to verify the proxy
driver.get("http://whatismyipaddress.com")

# Close the browser
driver.quit()
```

## Proxy con autenticazione

Se il tuo proxy richiede l'autenticazione, puoi utilizzare il file `Proxy` classe da `selenium.webdriver.common.proxy`.

```python
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Proxy settings
proxy = Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = "your_proxy_ip:port"
proxy.ssl_proxy = "your_proxy_ip:port"
proxy.add_argument('--proxy-auth=user:password')

capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)

# Initialize WebDriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), desired_capabilities=capabilities)

# Open a website to verify the proxy
driver.get("http://whatismyipaddress.com")

# Close the browser
driver.quit()
```

## Utilizzo di Firefox con un proxy

Per configurare Firefox per l'utilizzo di un proxy, modificare le impostazioni del profilo Firefox.

```python
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from webdriver_manager.firefox import GeckoDriverManager

# Proxy details
proxy_ip = "your_proxy_ip"
proxy_port = "port"

# Set up Firefox profile
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", proxy_ip)
profile.set_preference("network.proxy.http_port", int(proxy_port))
profile.set_preference("network.proxy.ssl", proxy_ip)
profile.set_preference("network.proxy.ssl_port", int(proxy_port))

# Initialize WebDriver
driver = webdriver.Firefox(service=Service(GeckoDriverManager().install()), firefox_profile=profile)

# Open a website to verify the proxy
driver.get("http://whatismyipaddress.com")

# Close the browser
driver.quit()
```

## Risoluzione dei problemi comuni

**Autenticazione proxy:** Se il tuo proxy richiede un accesso, assicurati che le credenziali siano impostate correttamente.

**Blocco IP:** Alcuni siti Web potrebbero comunque bloccare i proxy. Utilizzare proxy residenziali o a rotazione per mitigare questo problema.

## Riepilogo

L'uso dei proxy con Selenium e Python può aiutarti a bypassare le restrizioni IP e migliorare i tuoi progetti di web scraping. Sia che si utilizzi Chrome o Firefox, la configurazione dei proxy implica la configurazione delle opzioni e delle funzionalità del browser per instradare il traffico attraverso il server proxy.

| Browser | Metodo di installazione | Autenticazione | Snippet di codice disponibile |
| --- | --- | --- | --- |
| Chrome | Opzioni Chrome | Sì | Sì |
| Firefox | Profilo Firefox | Sì | Sì |

Seguendo questi passaggi, puoi garantire che le tue attività di scraping rimangano ininterrotte ed efficienti. Se hai domande o idee per futuri tutorial, sentiti libero di lasciare un commento!
