
Grundlegende Posen für die Einrichtung eines Scrapy-Proxys
Crawler Brüder wissen, dass die Website Anti-Climbing-Mechanismus immer mehr und mehr pervers ist. Heute werden wir nag, wie man Scrapy kommt mit dem Proxy-Funktion, um das Leben zu retten. Direkt auf der trockenen Waren, Scrapy Proxy-Einstellungen in der Tat, zwei Schläge:Ändern Sie entweder die Konfigurationsdatei der Einstellungen oder basteln Sie an der Middleware herum..
Beginnen wir mit der rettenden Gnade, dem Hinzufügen dieser beiden Zeilen zu settings.py:
DOWNLOADER_MIDDLEWARES = {
scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 400,
}
HTTPPROXY_ENABLED = Wahr
Dies entspricht dem Einbau eines Proxy-Schalters in den Crawler, aber das ist nicht genug. Der Punkt ist, dass Sie die Proxy-Adresse in die Anfrage einbauen müssen. Mit dem dynamischen Wohn-Proxy von ipipgo sieht das Format zum Beispiel so aus:
yield scrapy.Request(
url, meta={'proxy': ''}
meta={'proxy': 'http://用户名:密码@gateway.ipipgo.com:9020'}
)
Eine ausgefallene Art, Middleware zu spielen
Die obige Methode eignet sich für ein kleines Spiel, wirklich wollen, um eine große auf die Middleware zu spielen. Lassen Sie uns unsere eigene ProxyMiddleware schreiben, hier ist ein Fallstrick zu beachten---Rotationsstrategie für Proxy-IP-Pools. Wenn Sie die API von ipipgo verwenden, um Proxys zu erhalten, wird empfohlen, die IP bei jeder Anfrage zu ändern, um die Überlebensrate zu erhöhen.
Code-Beispiel aus der Praxis:
import random
from ipipgo_api import get_proxies Dies ist das hypothetische offizielle SDK für ipipgo_.
class RandomProxyMiddleware.
def process_request(self, request, spider): proxy_list = get_proxies('web_scroll_list')
proxy_list = get_proxies('web_scraping') ipipgo's Schnittstelle aufrufen
proxy = random.choice(proxy_list)
request.meta['proxy'] = f "http://{proxy['auth']}@{proxy['ip_port']}"
Denken Sie daran, diese Middleware in den Einstellungen zu aktivieren und die Priorität auf etwa 500 zu setzen, damit sie optimal passt. Auf diese Weise wird jede Anfrage automatisch an einen anderen Proxy weitergeleitet, und das Anti-Climbing-System ist im Grunde blind.
Ein Leitfaden zur Vermeidung des Abgrunds (Lektionen in Tränen)
Hier sind einige häufige Minenfelder, die Neulinge betreten:
| Schlagloch | richtige Körperhaltung |
|---|---|
| Proxy-Authentifizierung fehlgeschlagen | Behandlung spezieller Symbole mit Anführungszeichen in urllib.parse |
| HTTPS-Website wird nicht verbunden | Die Proxy-Adresse sollte https://开头 lauten. |
| langsame Reaktionszeit | Nehmen Sie ipipgo.Ausschließliche Nutzung von Hochgeschwindigkeitsstrecken |
Praktische QA-Sitzung
F: Was sollte ich tun, wenn der Agent oft plötzlich ausfällt?
A: Aus diesem Grund müssen Sie den dynamischen IP-Pool von ipipgo verwenden, dessen Survival-Erkennung im 5-Sekunden-Takt aktualisiert wird und automatisch ausgefallene Knoten herausfiltert.
F: Brauche ich mehrere Threads mit verschiedenen Proxys zur gleichen Zeit?
A: Geben Sie einfach jeder Anfrage einen eigenen Proxy in der Middleware, Scrapy wird die Gleichzeitigkeit selbst handhaben.
F: Was sollte ich tun, wenn ich auf einer Website nach einem Verifizierungscode gefragt werde?
A: Diese Situation ist nicht genug, um die IP zu ändern, es wird empfohlen, mit ipipgo'sWohnsitz-Proxy + Masquerading des Anfrage-HeadersPaket, das persönlich getestet wurde, um die CAPTCHA-Auslöserate von 90% zu reduzieren.
Warum wir ipipgo empfehlen
Zugegeben, es gibt eine Fülle von Proxy-Anbietern auf dem Markt. Aber jeder, der sich mit Crawling beschäftigt, weiß, dassHigh Stash WohnungsvermittlungEs ist der König. ipipgos Top-3-Killer:
- Dynamic Residential IP in über 200 Städten landesweit
- IP-Vermittlung auf Einzelanforderungsebene (andere sind auf Minutenebene)
- Mechanismus zur Wiederholung von Fehlern und zur automatischen Absicherung.
Insbesondere ihreIntelligentes Routing-SystemDer beste Exportknoten kann automatisch an die Ziel-Website angepasst werden. Letztes Mal gab es ein E-Commerce-Projekt, die Erfolgsquote der Verwendung von gewöhnlichen Agenten ist weniger als 30%, Schnitt auf ipipgo direkt stieg auf 85%, der Projektleiter gab mir fast ein Banner.
Abschließend noch ein Ratschlag: Verschwenden Sie keine Zeit auf freie Agenten, die Sperrung des geistigen Eigentums ist eine Kleinigkeit, oder ein Schreiben eines Anwalts zu essen. Professionelle Dinge zu professionellen Menschen, dieser Agent Gebühr im Vergleich zu dem Projektrisiko, wirklich nichts.

