Web Unlocker ist eine leistungsstarke Scraping API, die den Zugriff auf jede Website ermöglicht, während gleichzeitig anspruchsvolle Bot-Schutzmechanismen umgangen werden. Sie können saubere HTML/JSON-Antworten mit einem einzigen API-Aufruf abrufen, ohne eine komplexe Anti-Bot-Infrastruktur verwalten zu müssen.
Web Unlocker bietet umfassende Web-Scraping-Funktionen:
- Automatisches Proxy-Management und CAPTCHA-Lösung
- Simulation des Verhaltens echter Nutzer
- Integriertes JavaScript-Rendering
- Globales Geo-Targeting
- Automatisierte Mechanismen für Wiederholungsversuche
- Pay-per-success-Preismodell
Bevor Sie Web Unlocker verwenden, schließen Sie die Einrichtung ab, indem Sie der quickstart guide folgen.
Die empfohlene Methode zur Integration von Web Unlocker.
Example: cURL Command
curl -X POST "https://api.brightdata.com/request" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer INSERT_YOUR_API_TOKEN" \
-d '{
"zone": "INSERT_YOUR_WEB_UNLOCKER_ZONE_NAME",
"url": "http://lumtest.com/myip.json",
"format": "raw"
}'- API-Endpunkt:
https://api.brightdata.com/request - Authorization-Header: Ihr API token aus der Web Unlocker API zone
- Payload:
zone: Ihr Name der Web Unlocker API zoneurl: Ziel-URL, auf die zugegriffen werden sollformat: Antwortformat (verwenden Sierawfür die direkte Website-Antwort)
Example: Python Script
import requests
API_URL = "https://api.brightdata.com/request"
API_TOKEN = "INSERT_YOUR_API_TOKEN"
ZONE_NAME = "INSERT_YOUR_WEB_UNLOCKER_ZONE_NAME"
TARGET_URL = "http://lumtest.com/myip.json"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_TOKEN}"
}
payload = {
"zone": ZONE_NAME,
"url": TARGET_URL,
"format": "raw"
}
response = requests.post(API_URL, headers=headers, json=payload)
if response.status_code == 200:
print("Success:", response.text)
else:
print(f"Error {response.status_code}: {response.text}")Alternative Methode unter Verwendung von Proxy-basiertem Routing.
Example: cURL Command
curl "http://lumtest.com/myip.json" \
--proxy "brd.superproxy.io:33335" \
--proxy-user "brd-customer-<CUSTOMER_ID>-zone-<ZONE_NAME>:<ZONE_PASSWORD>"Erforderliche Zugangsdaten:
- Customer ID: Zu finden in den Account settings
- Name der Web Unlocker API zone: Zu finden im Overview-Tab
- Passwort der Web Unlocker API: Zu finden im Overview-Tab
Example: Python Script
import requests
customer_id = "<customer_id>"
zone_name = "<zone_name>"
zone_password = "<zone_password>"
host = "brd.superproxy.io"
port = 33335
proxy_url = f"http://brd-customer-{customer_id}-zone-{zone_name}:{zone_password}@{host}:{port}"
proxies = {"http": proxy_url, "https": proxy_url}
response = requests.get("http://lumtest.com/myip.json", proxies=proxies)
if response.status_code == 200:
print(response.json())
else:
print(f"Error: {response.status_code}")Sehen wir uns an, wie Sie Reviews von G2.com scrapen können – einer Website, die stark durch Cloudflare geschützt ist.
Verwendung eines einfachen Python-Skripts zum Scrapen von G2 reviews:
import requests
from bs4 import BeautifulSoup
url = 'https://www.g2.com/products/mongodb/reviews'
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, "lxml")
headings = soup.find_all('h2')
if headings:
print("\nHeadings Found:")
for heading in headings:
print(f"- {heading.get_text(strip=True)}")
else:
print("No headings found")
else:
print("Request blocked")Result: Das Skript schlägt (403-Fehler) aufgrund der Anti-Bot-Maßnahmen von Cloudflare fehl.
Um solche Einschränkungen zu umgehen, verwenden Sie Web Unlocker. Unten finden Sie eine Python-Implementierung:
import requests
from bs4 import BeautifulSoup
API_URL = "https://api.brightdata.com/request"
API_TOKEN = "INSERT_YOUR_API_TOKEN"
ZONE_NAME = "INSERT_YOUR_ZONE"
TARGET_URL = "https://www.g2.com/products/mongodb/reviews"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_TOKEN}"
}
payload = {"zone": ZONE_NAME, "url": TARGET_URL, "format": "raw"}
response = requests.post(API_URL, headers=headers, json=payload)
if response.status_code == 200:
soup = BeautifulSoup(response.text, "lxml")
headings = [h.get_text(strip=True) for h in soup.find_all('h2')]
print("\nExtracted Headings:", headings)
else:
print(f"Error {response.status_code}: {response.text}")Result: Umgeht den Schutz erfolgreich und ruft Inhalte mit Status 200 ab.
Alternativ können Sie die Proxy-basierte Methode verwenden:
import requests
from bs4 import BeautifulSoup
proxy_url = "http://brd-customer-<customer_id>-zone-<zone_name>:<zone_password>@brd.superproxy.io:33335"
proxies = {"http": proxy_url, "https": proxy_url}
url = "https://www.g2.com/products/mongodb/reviews"
response = requests.get(url, proxies=proxies, verify=False)
if response.status_code == 200:
soup = BeautifulSoup(response.text, "lxml")
headings = [h.get_text(strip=True) for h in soup.find_all('h2')]
print("\nExtracted Headings:", headings)
else:
print(f"Error {response.status_code}: {response.text}")Note: Unterdrücken Sie SSL-Zertifikatswarnungen, indem Sie Folgendes hinzufügen:
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)Verwenden Sie den x-unblock-expect-Header, um auf bestimmte Elemente oder Text zu warten:
headers["x-unblock-expect"] = '{"element": ".star-wrapper__desc"}'
# or
headers["x-unblock-expect"] = '{"text": "reviews"}'👉 Sie finden den vollständigen Code in g2_wait.py
Um mobile User-Agents statt Desktop-User-Agents zu verwenden, hängen Sie -ua-mobile an Ihren Benutzernamen an:
username = f"brd-customer-{customer_id}-zone-{zone_name}-ua-mobile"👉 Sie finden den vollständigen Code in g2_mobile.py
Während Web Unlocker automatisch optimale IP-Standorte auswählt, können Sie Zielstandorte festlegen:
username = f"brd-customer-{customer_id}-zone-{zone_name}-country-us"
username = f"brd-customer-{customer_id}-zone-{zone_name}-country-us-city-sanfrancisco"👉 Sie können hier mehr erfahren.
Aktivieren Sie detaillierte Debugging-Informationen, indem Sie das Flag -debug-full hinzufügen:
username = f"brd-customer-{customer_id}-zone-{zone_name}-debug-full"👉 Sie finden den vollständigen Code in g2_debug.py
Überwachen Sie die API-Erfolgsraten für bestimmte Domains:
import requests
API_TOKEN = "INSERT_YOUR_API_TOKEN"
def get_success_rate(domain):
url = f"https://api.brightdata.com/unblocker/success_rate/{domain}"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_TOKEN}"
}
response = requests.get(url, headers=headers)
print(response.json() if response.status_code == 200 else response.text)
get_success_rate("g2.com") # Get statistics for specific domain
get_success_rate("g2.*") # Get statistics for all top-level domainsWeb Unlocker ermöglicht es Ihnen, selbst die am stärksten geschützten Websites mühelos zu scrapen. Wichtige Punkte, die Sie beachten sollten:
-
Not Compatible With:
- Browser (Chrome, Firefox, Edge)
- Anti-detect-Browser (Adspower, Multilogin)
- Automatisierungstools (Puppeteer, Playwright, Selenium)
-
Use Scraping Browser:
Für browserbasierte Automatisierung verwenden Sie Bright Data’s Scraping Browser. -
Premium Domains:
Greifen Sie mit den Funktionen für premium domain auf anspruchsvolle Websites zu. -
CAPTCHA Solving:
Wird automatisch gelöst, kann jedoch deaktiviert werden. Erfahren Sie mehr über Bright Data's CAPTCHA Solver. -
Custom Headers & Cookies:
Senden Sie Ihre eigenen, um bestimmte Website-Versionen gezielt anzusteuern. Learn more.
Besuchen Sie die official documentation für weitere Details.
