Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Verwendung von CloudScraper mit Proxies

Promo

Dieser Leitfaden behandelt das Einrichten einer CloudScraper-Proxy-Integration, das Rotieren von IPs sowie die Verwendung authentifizierter Proxies für nahtloses Scraping.

About CloudScraper

CloudScraper ist ein Python-Modul, das entwickelt wurde, um Cloudflares Anti-Bot-Seite (allgemein bekannt als „I'm Under Attack Mode“ oder IUAM) zu umgehen. Unter der Haube ist es mit Requests implementiert, einem der beliebtesten Python-HTTP-Clients.

Why Use Proxies with CloudScraper?

Cloudflare kann Ihre IP-Adresse blockieren, wenn Sie zu viele Anfragen stellen oder ausgefeiltere Abwehrmechanismen auslösen, die schwer zu umgehen sind. Die Kombination aus Proxies und CloudScraper für das Scraping von Websites, die bei Cloudflare gehostet werden, bietet zwei wesentliche Vorteile:

  • Erhöhte Sicherheit und Anonymität: Indem Sie Anfragen über einen Proxy leiten, bleibt Ihre echte Identität verborgen, wodurch das Risiko einer Erkennung sinkt.
  • Vermeidung von Sperren und Unterbrechungen: Proxies ermöglichen es Ihnen, IP-Adressen dynamisch zu rotieren, was Ihnen hilft, Sperren und Ratenbegrenzungen zu umgehen.

Setting Up a Proxy With CloudScraper

Step #1: Install CloudScraper

Installieren Sie das cloudscraper pip-Paket:

pip install -U cloudscraper

Die Option -U stellt sicher, dass Sie die neueste Version des Pakets mit den aktuellsten Workarounds für Cloudflares Anti-Bot-Engine erhalten.

Step #2: Initialize CloudScraper

Importieren Sie CloudScraper:

import cloudscraper

Erstellen Sie eine CloudScraper-Instanz mit der Methode create_scraper():

scraper = cloudscraper.create_scraper()

Das Objekt scraper funktioniert ähnlich wie das Objekt Session aus der Bibliothek requests. Insbesondere ermöglicht es Ihnen, HTTP-Anfragen zu stellen und dabei Cloudflares Anti-Bot-Maßnahmen zu umgehen.

Step #3: Integrate a Proxy

Definieren Sie ein proxies-Dictionary und übergeben Sie es wie unten gezeigt an die Methode get():

proxies = {
    "http": "<YOUR_HTTP_PROXY_URL>",
    "https": "<YOUR_HTTPS_PROXY_URL>"
}

# Perform a request through the specified proxy
response = scraper.get("<YOUR_TARGET_URL>", proxies=proxies)

Der Parameter proxies in der Methode get() wird an Requests weitergereicht. Dadurch kann der HTTP-Client Ihre Anfrage über den angegebenen HTTP- oder HTTPS-Proxy-Server leiten – abhängig vom Protokoll Ihrer Ziel-URL.

Step #4: Test the CloudScraper Proxy Integration Setup

Zu Demonstrationszwecken zielen wir auf den Endpunkt /ip des Projekts HTTPBin. Dieser Endpunkt gibt die IP-Adresse des Aufrufers zurück. Wenn alles wie erwartet funktioniert, sollte die Antwort die IP-Adresse des Proxy-Servers anzeigen.

Angenommen, die URL für den Proxy-Server lautet http://202.159.35.121:443, dann ist dies der Script-Code:

import cloudscraper

# Create a CloudScraper instance
scraper = cloudscraper.create_scraper()

# Specify your proxy
proxies = {
    "http": "http://202.159.35.121:443",
    "https": "http://202.159.35.121:443"
}

# Make a request through the proxy
response = scraper.get("https://httpbin.org/ip", proxies=proxies)

# Print the response from the "/ip" endpoint
print(response.text)

Sie sollten eine Antwort wie diese sehen:

{
    "origin": "202.159.35.121"
}

Die IP in der Antwort entspricht wie erwartet der IP des Proxy-Servers.

Hinweis:
Kostenlose Proxy-Server sind oft kurzlebig. Es ist am besten, beim Testen des Scripts eine neue IP-Adresse für einen Proxy zu beziehen.

Implementing Proxy Rotation

Rufen Sie eine Liste von Proxies von einem zuverlässigen Anbieter ab und speichern Sie sie in einem Array:

proxy_list = [
    {"http": "<YOUR_PROXY_URL_1>", "https": "<YOUR_PROXY_URL_1>"},
    # ...
    {"http": "<YOUR_PROXY_URL_n>", "https": "<YOUR_PROXY_URL_n>"},
]

Verwenden Sie anschließend die Methode random.choice(), um zufällig einen Proxy aus der Liste auszuwählen:

import random

random_proxy = random.choice(proxy_list)

Setzen Sie den zufällig ausgewählten Proxy in der get()-Anfrage:

response = scraper.get("<YOUR_TARGET_URL>", proxies=random_proxy)

Wenn alles korrekt eingerichtet ist, verwendet die Anfrage bei jedem Lauf einen anderen Proxy aus der Liste. Hier ist der vollständige Code:

import cloudscraper
import random

# Create a Cloudscraper instance
scraper = cloudscraper.create_scraper()

# List of proxy URLs (replace with actual proxy URLs)
proxy_list = [
    {"http": "<YOUR_PROXY_URL_1>", "https": "<YOUR_PROXY_URL_1>"},
    # ...
    {"http": "<YOUR_PROXY_URL_n>", "https": "<YOUR_PROXY_URL_n>"},
]

# Randomly select a proxy from the list
random_proxy = random.choice(proxy_list)

# Make a request using the randomly selected proxy
# (replace with the actual target URL)
response = scraper.get("<YOUR_TARGET_URL>", proxies=random_proxy)

Using Authenticated Proxies in CloudScraper

Um einen Proxy in CloudScraper zu authentifizieren, fügen Sie die erforderlichen Zugangsdaten direkt in die Proxy-URL ein. Das Format für die Authentifizierung per Benutzername und Passwort lautet wie folgt:

<PROXY_PROTOCOL>://<YOUR_USERNAME>:<YOUR_PASSWORD>@<PROXY_IP_ADDRESS>:<PROXY_PORT>

Mit diesem Format würde die CloudScraper-Proxy-Konfiguration so aussehen:

import cloudscraper

# Create a Cloudscraper instance
scraper = cloudscraper.create_scraper()  

# Define your authenticated proxy
proxies = {
   "http": "<PROXY_PROTOCOL>://<YOUR_USERNAME>:<YOUR_PASSWORD>@<PROXY_IP_ADDRESS>:<PROXY_PORT>",
   "https": "<PROXY_PROTOCOL>://<YOUR_USERNAME>:<YOUR_PASSWORD>@<PROXY_IP_ADDRESS>:<PROXY_PORT>"
}

# Perform a request through the specified authenticated proxy
response = scraper.get("<YOUR_TARGET_URL>", proxies=proxies)

Integrating Premium Proxies in CloudScraper

Für zuverlässige Ergebnisse in produktiven Scraping-Umgebungen verwenden Sie Proxies von erstklassigen Anbietern wie Bright Data. So integrieren Sie die Proxies von Bright Data in CloudScraper:

  1. Erstellen Sie ein Konto oder melden Sie sich an.

  2. Gehen Sie zum Dashboard und klicken Sie in der Tabelle auf die Zone „Residential“:

Bright Data's proxies and scraping infrastructure control panel

  1. Aktivieren Sie die Proxies, indem Sie auf den Umschalter klicken:

Turning on the residential zone

Das sollten Sie nun sehen:

The residential zone turned on

Hinweis:
Die Residential Proxies von Bright Data rotieren automatisch.

  1. Kopieren Sie im Abschnitt „Access Details“ den Proxy-Host, den Benutzernamen und das Passwort:

The access details for your residential proxies zone Ihre Bright Data Proxy-URL wird wie folgt aussehen:

http://<PROXY_USERNAME>:<PROXY_PASSWORD>@brd.superproxy.io:33335
  1. Integrieren Sie den Proxy wie folgt in Cloudscraper:
import cloudscraper
# Create a CloudScraper instance
scraper = cloudscraper.create_scraper()
# Define the premium proxy
proxies = {
"http": "http://<PROXY_USERNAME>:<PROXY_PASSWORD>@<PROXY_HOST>:<PROXY_PORT>",
"https": "http://<PROXY_USERNAME>:<PROXY_PASSWORD>@<PROXY_HOST>:<PROXY_PORT>"
}
# Perform a request using the premium proxy
response = scraper.get("https://httpbin.org/ip", proxies=proxies)
# Print the response to verify the proxy is working
print(response.text)

Die CloudScraper-Proxy-Integration ist abgeschlossen. Nun müssen wir testen und verifizieren. Um sicherzustellen, dass der Proxy korrekt funktioniert, können Sie ihn gegen einen Dienst wie https://httpbin.org/ip testen, der die IP-Adresse des Aufrufers zurückgibt. Wenn die Einrichtung korrekt ist, sollte die Antwort die IP-Adresse des Proxy-Servers statt Ihrer lokalen IP anzeigen.

Putting Everything Together

import cloudscraper
import random
import time

# Step 1: Define a list of proxies (authenticated and non-authenticated)
# Replace <PROXY_USERNAME>, <PROXY_PASSWORD>, <PROXY_HOST>, and <PROXY_PORT> with actual values
proxy_list = [
    {"http": "http://<PROXY_HOST_1>:<PROXY_PORT_1>", "https": "http://<PROXY_HOST_1>:<PROXY_PORT_1>"},
    {"http": "http://<PROXY_USERNAME>:<PROXY_PASSWORD>@<PROXY_HOST_2>:<PROXY_PORT_2>", 
     "https": "http://<PROXY_USERNAME>:<PROXY_PASSWORD>@<PROXY_HOST_2>:<PROXY_PORT_2>"},
    {"http": "http://<PROXY_USERNAME>:<PROXY_PASSWORD>@<PROXY_HOST_3>:<PROXY_PORT_3>", 
     "https": "http://<PROXY_USERNAME>:<PROXY_PASSWORD>@<PROXY_HOST_3>:<PROXY_PORT_3>"}
]

# Step 2: Create a CloudScraper instance
scraper = cloudscraper.create_scraper()

# Step 3: Define the target URL
target_url = "https://httpbin.org/ip"  # This endpoint returns the caller's IP address

# Step 4: Implement proxy rotation and make requests
def fetch_with_proxy_rotation(proxy_list, target_url, num_requests=5):
    """
    Fetch the target URL using proxy rotation.
    
    Args:
        proxy_list (list): A list of proxy configurations.
        target_url (str): The URL to scrape.
        num_requests (int): Number of requests to make.
    """
    for i in range(num_requests):
        # Randomly select a proxy from the list
        proxy = random.choice(proxy_list)
        
        try:
            # Make a request using the selected proxy
            print(f"Using proxy: {proxy}")
            response = scraper.get(target_url, proxies=proxy, timeout=10)
            
            # Print the response (IP address of the proxy)
            print(f"Response {i + 1}: {response.text}")
        
        except Exception as e:
            # Handle errors (e.g., connection timeout, proxy failure)
            print(f"Error with proxy {proxy}: {e}")
        
        # Wait a bit before the next request to mimic human behavior
        time.sleep(random.uniform(1, 3))

# Step 5: Run the function
fetch_with_proxy_rotation(proxy_list, target_url, num_requests=5)

Output Example

Using proxy: {'http': 'http://<PROXY_HOST_1>:<PROXY_PORT_1>', 'https': 'http://<PROXY_HOST_1>:<PROXY_PORT_1>'}
Response 1: {
    "origin": "203.0.113.1"
}
Using proxy: {'http': 'http://<PROXY_USERNAME>:<PROXY_PASSWORD>@<PROXY_HOST_2>:<PROXY_PORT_2>', 'https': 'http://<PROXY_USERNAME>:<PROXY_PASSWORD>@<PROXY_HOST_2>:<PROXY_PORT_2>'}
Response 2: {
    "origin": "198.51.100.2"
}
Using proxy: {'http': 'http://<PROXY_USERNAME>:<PROXY_PASSWORD>@<PROXY_HOST_3>:<PROXY_PORT_3>', 'https': 'http://<PROXY_USERNAME>:<PROXY_PASSWORD>@<PROXY_HOST_3>:<PROXY_PORT_3>'}
Response 3: {
    "origin": "192.0.2.3"
}
...

Conclusion

Bright Data betreibt die besten Proxy-Server der Welt und bedient Fortune-500-Unternehmen sowie über 20.000 Kunden. Sein weltweites Proxy-Netzwerk umfasst:

Erstellen Sie noch heute ein kostenloses Bright Data-Konto , um unsere Proxy-Server zu testen.

About

Leitfaden zur Integration von Proxies mit CloudScraper, der Proxy-Einrichtung, Rotation, authentifizierte Proxies und die Integration von Premium-Proxies abdeckt

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors