# Selen Pythona (4). Jak używać Selenium z Pythonem i proxy

Odkryj moc Selenium z Pythonem i wykorzystaj proxy do wydajnego scrapowania i automatyzacji stron internetowych. Zwiększ wydajność gromadzenia danych dzięki niedrogim serwerom proxy FineProxy.

- Autor: [Brandon Perry](https://fineproxy.org/pl/brandon-perry/)
- Opublikowano: 2024-06-04T11:17:19.000Z
- Updated: 2024-05-27T11:43:12.000Z
- Adres kanoniczny: https://fineproxy.org/pl/selenium-python-4-how-to-use-selenium-with-python-and-proxies/

Podczas pracy ze skrobaniem sieci lub automatyzacją przy użyciu Selenium i Pythona używanie serwerów proxy może być niezbędne, aby uniknąć blokad adresów IP i poprawić efektywność gromadzenia danych. Ten artykuł poprowadzi Cię przez konfigurację i używanie serwerów proxy w Selenium z Pythonem.

## Co to jest Selen i dlaczego warto używać serwerów proxy?

**Selenium** to potężne narzędzie do automatyzacji przeglądarek internetowych, często używane do przeglądania stron internetowych i testowania aplikacji internetowych. **Proxy** to serwery pośredniczące oddzielające użytkowników końcowych od przeglądanych przez nich stron internetowych, pomagające maskować adresy IP i zarządzać ładowaniem żądań.

## Konfigurowanie Selenium za pomocą serwerów proxy

Zanim zagłębisz się w kod, upewnij się, że masz zainstalowane niezbędne narzędzia:

-   Python
-   Selen (`pip install selenium`)
-   Sterownik przeglądarki internetowej (np. ChromeDriver dla Chrome lub GeckoDriver dla Firefox)

## Przewodnik krok po kroku dotyczący używania serwerów proxy w Selenium

### 1\. Konfigurowanie przeglądarki Chrome za pomocą serwera proxy

Aby skonfigurować Chrome do korzystania z serwera proxy, musisz skonfigurować żądane możliwości w 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 z uwierzytelnianiem

Jeśli Twój serwer proxy wymaga uwierzytelnienia, możesz użyć `Proxy` klasa od `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()
```

## Używanie przeglądarki Firefox z serwerem proxy

Aby skonfigurować przeglądarkę Firefox do korzystania z serwera proxy, zmodyfikuj ustawienia profilu przeglądarki 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()
```

## Rozwiązywanie typowych problemów

**Uwierzytelnianie proxy:** Jeśli Twój serwer proxy wymaga logowania, upewnij się, że poświadczenia są prawidłowo ustawione.

**Blokowanie adresów IP:** Niektóre witryny mogą nadal blokować serwery proxy. Aby złagodzić ten problem, użyj serwerów proxy stacjonarnych lub rotacyjnych.

## Podsumowanie

Używanie serwerów proxy w Selenium i Pythonie może pomóc w ominięciu ograniczeń IP i usprawnieniu projektów związanych z przeglądaniem stron internetowych. Niezależnie od tego, czy korzystasz z przeglądarki Chrome, czy Firefox, konfiguracja serwerów proxy obejmuje skonfigurowanie opcji i możliwości przeglądarki w celu kierowania ruchu przez serwer proxy.

| Przeglądarka | Metoda konfiguracji | Uwierzytelnianie | Dostępny fragment kodu |
| --- | --- | --- | --- |
| Chrome | Opcje Chrome | Tak | Tak |
| Firefox | Profil Firefoksa | Tak | Tak |

Wykonując poniższe kroki, możesz mieć pewność, że skrobanie pozostanie nieprzerwane i wydajne. Jeśli masz jakieś pytania lub pomysły na przyszłe tutoriale, zostaw komentarz!
