Skip to content

SeleniumBase mit authentifizierten Proxies, um Einschränkungen zu umgehen, Web-Scraping zu verbessern und Rotierende Proxies für eine bessere Datenextraktion zu verwalten.

Notifications You must be signed in to change notification settings

bright-data-de/seleniumbase-with-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 

Repository files navigation

Proxies mit SeleniumBase verwenden

Promo

Dieser Leitfaden erklärt, wie Sie SeleniumBase mit authentifizierten Proxies einrichten, um Einschränkungen zu umgehen und Ihren Web-Scraping-Erfolg zu steigern.

Warum wir SeleniumBase benötigen

Selenium unterstützt keine authentifizierten Proxies. Da SeleniumWire bereits seit über einem Jahr als deprecated gilt und seit über zwei Jahren keine Updates mehr erhalten hat, besteht die Lösung darin, SeleniumBase zu verwenden. Das letztgenannte Projekt wurde ursprünglich als Wrapper konzipiert, um Selenium-Instanzen auszuführen und Web-Automatisierung & Testing mit Python durchzuführen. Für uns ermöglicht es jedoch, Selenium über einen authentifizierten Proxy auszuführen.

Erste Schritte

Beginnen Sie mit der Installation von SeleniumBase:

pip install seleniumbase

Schreiben Sie nun einen Testfall, der Selenium steuert und die webdriver-Instanz ausführt. Der folgende Code stellt eine Anfrage an die IPinfo API. Sobald das Skript die JSON-Antwort erhält, parst es die Antwort und gibt deren Inhalt in der Konsole aus.

from seleniumbase import BaseCase
from selenium.webdriver.common.by import By
import json

class ProxyTest(BaseCase):
   def test_proxy(self):
        #go to the site
        self.driver.get("https://ipinfo.io/json")
      
        #load the json response
        location_info = json.loads(self.driver.find_element(By.TAG_NAME, "body").text)

        #iterate through the dict and print its contents
        for k,v in location_info.items():
            print(f"{k}: {v}")

Den Test ausführen

Führen wir den Test mit pytest statt mit python aus.

Ohne Proxy

Um das Testskript ohne Proxy auszuführen, verwenden Sie den folgenden Befehl:

pytest proxy_test.py -s

Die Antwort wird ähnlich wie diese aussehen:

=================================================== test session starts ===================================================
platform linux -- Python 3.10.12, pytest-8.3.4, pluggy-1.5.0
rootdir: /home/nultinator/clients/bright-data/seleniumbase-proxies
plugins: html-4.0.2, metadata-3.1.1, anyio-4.0.0, seleniumbase-4.34.6, ordering-0.6, rerunfailures-15.0, xdist-3.6.1
collected 1 item                                                                                                          

proxy_test.py ip: 23.28.108.255
hostname: d28-23-255-108.dim.wideopenwest.com
city: Westland
region: Michigan
country: US
loc: 42.3242,-83.4002
org: AS12083 WideOpenWest Finance LLC
postal: 48185
timezone: America/Detroit
readme: https://ipinfo.io/missingauth
.

==================================================== 1 passed in 1.01s ====================================================

Proxy-Konfiguration

Verwenden Sie das --proxy-Flag, gefolgt von der Proxy-URL. Hier ist die Vorlage:

--proxy=your_proxy_url:your_proxy_port

Free Proxy

Das folgende Beispiel verwendet einen free proxy von Bright Data. Die IP-Adresse lautet 155.54.239.64, und wir sprechen sie über Port 80 an.

--proxy=155.54.239.64:80

Authentifizierter Proxy

Authentifizierte Proxies werden auf die gleiche Weise gehandhabt. Fügen Sie einfach Ihren Benutzernamen und Ihr Passwort in die URL ein:

proxy=<YOUR_USERNAME>:<YOUR_PASSWORD>@<PROXY_URL>:<PROXY_PORT>

Authentifizierte Proxy-Typen

Die besten Optionen für authentifizierte Proxies sind:

  • Residential proxies: verwenden echte User-IPs, wodurch sie ideal sind, um Bot-Erkennung zu umgehen.
  • Datacenter proxies: schneller und kosteneffizienter, aber leichter zu erkennen.
  • ISP proxies: kombinieren die Vorteile beider Ansätze und bieten Geschwindigkeit bei hoher Vertrauenswürdigkeit.

Ausführen mit Proxy

Das folgende Beispiel ist so eingerichtet, dass es mit einem unserer Proxies bei Bright Data ausgeführt wird. Stellen Sie sicher, dass Sie den Benutzernamen, den Zonen-Namen und das Passwort durch Ihre eigenen Zugangsdaten ersetzen.

pytest proxy_test.py --proxy=brd-customer-<YOUR-USERNAME>-zone-<YOUR-ZONE-NAME>:<YOUR-PASSWORD>@brd.superproxy.io:33335 -s

Beim Ausführen erhalten Sie die folgende Ausgabe:

=================================================== test session starts ===================================================
platform linux -- Python 3.10.12, pytest-8.3.4, pluggy-1.5.0
rootdir: /home/nultinator/clients/bright-data/seleniumbase-proxies
plugins: html-4.0.2, metadata-3.1.1, anyio-4.0.0, seleniumbase-4.34.6, ordering-0.6, rerunfailures-15.0, xdist-3.6.1
collected 1 item

proxy_test.py ip: 144.202.4.246
hostname: 144-202-4-246.lum-int.io
city: Piscataway
region: New Jersey
country: US
loc: 40.4993,-74.3990
org: AS20473 The Constant Company, LLC
postal: 08854
timezone: America/New_York
readme: https://ipinfo.io/missingauth
.

==================================================== 1 passed in 3.25s ====================================================

Standort steuern

Mit den Proxies von Bright Data können Sie Ihren Standort auswählen, indem Sie das country-Flag und einen zweibuchstabigen Ländercode verwenden:

pytest proxy_test.py --proxy=brd-customer-<YOUR-USERNAME>-zone-<YOUR-ZONE-NAME>:<YOUR-PASSWORD>-country-es@brd.superproxy.io:33335 -s

Wenn Sie es (Spanien) als Ländercode verwenden, werden Sie über einen Proxy in Spanien geroutet. Sie können dies in der folgenden Ausgabe verifizieren.

=================================================== test session starts ===================================================
platform linux -- Python 3.10.12, pytest-8.3.4, pluggy-1.5.0
rootdir: /home/nultinator/clients/bright-data/seleniumbase-proxies
plugins: html-4.0.2, metadata-3.1.1, anyio-4.0.0, seleniumbase-4.34.6, ordering-0.6, rerunfailures-15.0, xdist-3.6.1
collected 1 item

proxy_test.py ip: 176.119.14.158
city: Paracuellos de Jarama
region: Madrid
country: ES
loc: 40.5035,-3.5278
org: AS203020 HostRoyale Technologies Pvt Ltd
postal: 28860
timezone: Europe/Madrid
readme: https://ipinfo.io/missingauth
.

==================================================== 1 passed in 3.98s ====================================================

Bitte lesen Sie die Geolokalisierungsdokumentation für Details.

Rotierende Proxies

Der folgende Code verwendet eine Reihe von Ländercodes, diese können jedoch problemlos durch tatsächliche Proxy-IPs ersetzt werden. countries enthält die Liste der Ländercodes. Als Nächstes iterieren wir über diese und führen unseren Proxy-Test mit allen vier Ländercodes aus.

  • us: United States
  • es: Spain
  • il: Israel
  • gb: Great Britain
import subprocess

#list of country codes
countries = [
    "us",
    "es",
    "il",
    "gb",
]

#iterate through the countries and make a shell command for each one
for country in countries:
    command = f"pytest proxy_test.py --proxy=brd-customer-<YOUR-USERNAME>-<YOUR-ZONE-NAME>-country-{country}:[email protected]:33335 -s"

    #run the shell command
    subprocess.run(command, shell=True)

Sie können dies als reguläre Python-Datei ausführen:

python rotate_proxies.py

Die Ausgabe sollte ähnlich wie diese sein:

(Linux uses --headless by default. To override, use --headed / --gui. For Xvfb mode instead, use --xvfb. Or you can hide this info by using --headless / --headless2 / --uc.)
=================================================== test session starts ===================================================
platform linux -- Python 3.10.12, pytest-8.3.4, pluggy-1.5.0
rootdir: /home/nultinator/clients/bright-data/seleniumbase-proxies
plugins: html-4.0.2, metadata-3.1.1, anyio-4.0.0, seleniumbase-4.34.6, ordering-0.6, rerunfailures-15.0, xdist-3.6.1
collected 1 item                                                                                                          

proxy_test.py ip: 164.90.142.33
city: Clifton
region: New Jersey
country: US
loc: 40.8344,-74.1377
org: AS14061 DigitalOcean, LLC
postal: 07014
timezone: America/New_York
readme: https://ipinfo.io/missingauth
.

==================================================== 1 passed in 3.84s ====================================================
(Linux uses --headless by default. To override, use --headed / --gui. For Xvfb mode instead, use --xvfb. Or you can hide this info by using --headless / --headless2 / --uc.)
=================================================== test session starts ===================================================
platform linux -- Python 3.10.12, pytest-8.3.4, pluggy-1.5.0
rootdir: /home/nultinator/clients/bright-data/seleniumbase-proxies
plugins: html-4.0.2, metadata-3.1.1, anyio-4.0.0, seleniumbase-4.34.6, ordering-0.6, rerunfailures-15.0, xdist-3.6.1
collected 1 item                                                                                                          

proxy_test.py ip: 5.180.9.15
city: Madrid
region: Madrid
country: ES
loc: 40.4066,-3.6724
org: AS203020 HostRoyale Technologies Pvt Ltd
postal: 28007
timezone: Europe/Madrid
readme: https://ipinfo.io/missingauth
.

==================================================== 1 passed in 3.60s ====================================================
(Linux uses --headless by default. To override, use --headed / --gui. For Xvfb mode instead, use --xvfb. Or you can hide this info by using --headless / --headless2 / --uc.)
=================================================== test session starts ===================================================
platform linux -- Python 3.10.12, pytest-8.3.4, pluggy-1.5.0
rootdir: /home/nultinator/clients/bright-data/seleniumbase-proxies
plugins: html-4.0.2, metadata-3.1.1, anyio-4.0.0, seleniumbase-4.34.6, ordering-0.6, rerunfailures-15.0, xdist-3.6.1
collected 1 item                                                                                                          

proxy_test.py ip: 64.79.233.151
city: Tel Aviv
region: Tel Aviv
country: IL
loc: 32.0809,34.7806
org: AS9009 M247 Europe SRL
timezone: Asia/Jerusalem
readme: https://ipinfo.io/missingauth
.

==================================================== 1 passed in 3.36s ====================================================
(Linux uses --headless by default. To override, use --headed / --gui. For Xvfb mode instead, use --xvfb. Or you can hide this info by using --headless / --headless2 / --uc.)
=================================================== test session starts ===================================================
platform linux -- Python 3.10.12, pytest-8.3.4, pluggy-1.5.0
rootdir: /home/nultinator/clients/bright-data/seleniumbase-proxies
plugins: html-4.0.2, metadata-3.1.1, anyio-4.0.0, seleniumbase-4.34.6, ordering-0.6, rerunfailures-15.0, xdist-3.6.1
collected 1 item                                                                                                          

proxy_test.py ip: 185.37.3.107
city: London
region: England
country: GB
loc: 51.5085,-0.1257
org: AS9009 M247 Europe SRL
postal: E1W
timezone: Europe/London
readme: https://ipinfo.io/missingauth
.

==================================================== 1 passed in 2.90s ====================================================

Fazit

SeleniumBase eröffnet viele Web-Scraping-Fähigkeiten in Selenium. Schöpfen Sie das volle Potenzial von Selenium-basiertem Scraping mit den branchenführenden Proxy-Services von Bright Data aus: industry-leading proxy services. Starten Sie noch heute Ihre kostenlose Testversion!

About

SeleniumBase mit authentifizierten Proxies, um Einschränkungen zu umgehen, Web-Scraping zu verbessern und Rotierende Proxies für eine bessere Datenextraktion zu verwalten.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published