Proxys in der Webautomatisierung verstehen
Proxys fungieren als die stillen Agenten des Internets, die Ihre IP-Adresse verschleiern und Ihnen ein unauffälliges Navigieren durch digitale Welten ermöglichen. Im Kontext der Webautomatisierung – wo Selenium und Puppeteer im Browser ihre Arbeit verrichten – sind Proxys unverzichtbar, um Ratenbegrenzungen, Geobeschränkungen und Überwachung zu umgehen. Kostenlose Proxys sind zwar unzuverlässig und kurzlebig, können aber für einfache, unkritische Web-Scraping- oder Testszenarien ausreichen.
Arten von Proxys und ihre Eigenschaften
| Proxy-Typ | Anonymitätsstufe | Unterstützte Protokolle | Typischer Anwendungsfall | Zuverlässigkeit |
|---|---|---|---|---|
| HTTP | Niedrig bis mittel | HTTP, HTTPS | Einfaches Web-Scraping | Niedrig |
| SOCKS4/5 | Hoch | SOCKS4, SOCKS5 | Komplexe Protokolle, HTTPS | Medium |
| Transparent | Keine (gibt IP-Adresse preis) | HTTP, HTTPS | Zwischenspeicherung, interne Verwendung | Sehr niedrig |
| Elite/Anonym | Hoch | HTTP, HTTPS | Umgehung von Geoblocks | Medium |
Eine Zusammenstellung kostenloser Proxy-Listen finden Sie hier: https://free-proxy-list.net/ oder https://www.sslproxies.org/.
Verwendung kostenloser Proxys mit Selenium (Python)
1. Installation der Abhängigkeiten
pip install selenium
Laden Sie die neueste Version herunter ChromeDriver kompatibel mit Ihrer Chrome-Version.
2. Konfigurieren eines Proxys in Selenium
Der Browser, diese digitale Marionette, kann folgendermaßen gesteuert werden:
from selenium import webdriver from selenium.webdriver.chrome.options import Options proxy = "186.121.235.66:8080" # Ersetzen Sie dies durch Ihre kostenlose Proxy-Adresse. options = Options() options.add_argument(f'--proxy-server=http://{proxy}') driver = webdriver.Chrome(options=options) driver.get('https://httpbin.org/ip') print(driver.page_source) driver.quit()
Tabelle: Häufig verwendete Chrome-Proxy-Einstellungen
| Option | Beschreibung |
|---|---|
--proxy-server=http://IP:PORT |
HTTP-Proxy einrichten |
--proxy-server=https=IP:PORT |
HTTPS-Proxy einrichten |
--proxy-bypass-list=localhost;127.0.0.1 |
Adressen vom Proxy ausschließen |
3. Verwendung von Proxys mit Authentifizierung
Kostenlose Proxys mit Authentifizierung sind seltene Perlen, aber falls Sie zufällig auf einen stoßen sollten:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options # Authenticated proxies require a Chrome extension workaround from selenium.webdriver.common.by import By import zipfile proxy_host = 'proxy.example.com' proxy_port = 8000 proxy_user = 'user' proxy_pass = 'pass' manifest_json = """ { "version": "1.0.0", "manifest_version": 2, "name": "Chrome Proxy", "permissions": [ "proxy", "tabs", "unlimitedStorage", "storage", " ", "webRequest", "webRequestBlocking" ], "background": { "scripts": ["background.js"] } } """ background_js = f""" var config = {{ mode: "fixed_servers", rules: {{ singleProxy: {{ scheme: "http", host: "{proxy_host}", port: parseInt({proxy_port}) }}, bypassList: ["localhost"] }} }}; chrome.proxy.settings.set({{value: config, scope: "regular"}}, function() {{}}); function callbackFn(details) {{ return {{ authCredentials: {{ username: "{proxy_user}", password: "{proxy_pass}" }} }}; }} chrome.webRequest.onAuthRequired.addListener( callbackFn, {{urls: [" "]}}, ['blocking'] ); """ # Erstellen Sie die Proxy-Erweiterung pluginfile = 'proxy_auth_plugin.zip' mit zipfile.ZipFile(pluginfile, 'w') as zp: zp.writestr("manifest.json", manifest_json) zp.writestr("background.js", background_js) chrome_options = Options() chrome_options.add_extension(pluginfile) driver = webdriver.Chrome(options=chrome_options) driver.get('https://httpbin.org/ip')
Referenz: Selenium-Proxy-Authentifizierung (Gist-Git)
Kostenlose Proxys mit Puppeteer verwenden (Node.js)
1. Puppeteer installieren
npm installiere Puppenspieler
2. Puppeteer mit einem Proxy starten
Der Browser soll seine neue Maske aufsetzen:
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ args: ['--proxy-server=http://186.121.235.66:8080'] }); const page = await browser.newPage(); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(body); await browser.close(); })();
3. Umgang mit der Proxy-Authentifizierung
Wenn der Pförtner nach Zugangsdaten verlangt:
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ args: ['--proxy-server=http://proxy.example.com:8000'] }); const page = await browser.newPage(); await page.authenticate({ username: 'user', password: 'pass' }); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(body); await browser.close(); })();
4. Rotierende Proxys in Puppeteer
Ein Ballett ephemerer Identitäten, folgendermaßen orchestriert:
const proxies = [ 'http://proxy1:port', 'http://proxy2:port', 'http://proxy3:port' ]; const puppeteer = require('puppeteer'); (async () => { for (const proxy of proxies) { const browser = await puppeteer.launch({ args: [`--proxy-server=${proxy}`] }); const page = await browser.newPage(); await page.goto('https://httpbin.org/ip'); const body = await page.content(); console.log(`Proxy: ${proxy}\n${body}\n`); await browser.close(); } })();
Kostenlose Proxy-Quellen
| Name | URL | Merkmale |
|---|---|---|
| Kostenlose Proxy-Liste | https://free-proxy-list.net/ | Große HTTP/S-Liste, aktualisiert |
| SSL-Proxys | https://www.sslproxies.org/ | HTTPS-Proxys, schnelle Aktualisierung |
| ProxyScrape | https://proxyscrape.com/free-proxy-list | Mehrere Protokolle |
| Spys.one | http://spys.one/en/ | Erweiterte Filterung |
Bewährte Verfahren und Einschränkungen
- Vergängliche Natur: Kostenlose Proxys verschwinden oft spurlos; überwachen Sie ihre Verfügbarkeit mit Tools wie ProxyChecker.
- Geschwindigkeit und Zuverlässigkeit: Rechnen Sie mit Verzögerungen, Timeouts und gelegentlichen Sackgassen.
- Sicherheit: Verwenden Sie niemals kostenlose Proxys für sensible Konten – Man-in-the-Middle-Angriffe lauern im Verborgenen.
- Rechtliche und ethische Überlegungen: Beachten Sie stets die robots.txt-Datei und die Nutzungsbedingungen.
Proxy-Validierungsbeispiel (Python)
Bevor Sie Ihren Browser starten, testen Sie den Proxy-Status:
import requests proxy = "186.121.235.66:8080" proxies = {"http": f"http://{proxy}", "https": f"http://{proxy}"} try: response = requests.get('https://httpbin.org/ip', proxies=proxies, timeout=5) print(response.json()) except Exception as e: print(f"Proxy failed: {e}")
Kommentare (0)
Hier gibt es noch keine Kommentare, Sie können der Erste sein!