
Wenn der Crawler auf den Anti-Kletterer trifft - proxy ip Rettungshaltung
Jungs verwenden Python, um in Daten Crawling engagieren, sicherlich umgehen Requests und Scrapy diese beiden alten Kerle. Diese beiden Waren Blick auf die Arbeit der Crawler, aber die tatsächliche Nutzung der Unterschied kann eine Menge sein. Heute werden wir über sie und Proxy-IP mit der Verwendung sprechen, vor allem unsereipipgoWelche Rolle spielt der Vertretungsdienst des Hauses auf Seiten dieser beiden Bibliotheken?
Kriegskämpfer vs. Gruppenkrieg
Anfragen sind wie ein Schweizer Taschenmesser: Wenn Sie eine Webseite vorübergehend anfassen wollen, können Sie das in drei Zeilen Code tun. Aber wenn Sie auf ein Szenario stoßen, in dem Sie viele Seiten ändern müssen, müssen Sie Ihre eigene Rotationslogik schreiben:
importiere Anfragen
from ipipgo import get_proxy Unsere eigene Proxy-Schnittstelle.
def grab_data(url): proxy = get_proxy()
proxy = get_proxy() Zufallsgenerator für qualitativ hochwertigen Proxy
try: resp = requests.get(url): proxy = get_proxy()
resp = requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=10)
return resp.text
except.
print("Diese IP kann gesperrt sein, automatische Umschaltung auf die nächste.")
return grab_data(url) rekursiver Wiederholungsversuch
Scrapy ist eine Automatisierungsfabrik mit einem eigenen Middleware-Mechanismus, der die Proxy-Rotation zu einem großen Ärgernis macht. Konfigurieren Sie es in settings.py.ipipgoAPI, und die gesamte Crawler-Truppe wird automatisch eingekleidet:
DOWNLOADER_MIDDLEWARES = {
scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 100,
}
IPIPGO_API = "https://api.ipipgo.com/rotate" dynamische IP-Pool-Schnittstelle
def process_request(self, request, spider).
request.meta['proxy'] = self.get_proxy() Hängt automatisch den Proxy für jede Anfrage ein
Faktenblatt zum Vergleich des Proxy-Verbrauchs
| Nehmen Sie | Fordert Verbrauch | Scrapy-Verbrauch |
|---|---|---|
| Nehmen Sie 1000 Seiten | Etwa 30-50 ip | Kontrollierbar innerhalb von 10 |
| CAPTCHA antreffen | Manueller Austausch erforderlich | Automatisches Schalten von Sicherungen |
| verteiltes Crawling | Schwieriger Synchronisierungszustand | Natürliche Fördercluster |
Praktische Auswahlhilfe
Brüdern, die gerade erst anfangen, wird empfohlen, zunächst Requests+ zu verwenden.ipipgoeines statischen Proxy-Pakets, das die Verwendung der IP einer Region wie folgt festlegt:
proxies = {
"http": "121.36.84.149:8008", exklusiver Kanal, kopiert vom ipipgo-Backend
"https": "121.36.84.149:8008"
}
Wenn es Zeit für ein großes Projekt ist, denken Sie daran, auf Scrapy + dynamisches Agenten-Pooling zu setzen. Lass unsipipgoDie intelligente Planungsschnittstelle kann die IP-Adresse des Wohnbereichs oder des Serverraums automatisch an die Anti-Climbing-Stärke der Ziel-Website anpassen, was viel zuverlässiger ist als die Festlegung auf einen einzigen IP-Typ.
Alter Treiber QA Zeit
F: Was soll ich tun, wenn meine IP immer blockiert wird?
A: Überprüfen Sie drei Dinge: 1. ob die Anonymität des Proxys hoch genug ist (mit dem Paket Extreme Stash von ipipgo) 2. ob der Request-Header einen Browser-Fingerabdruck enthält 3. ob die Besuchshäufigkeit der einer echten Person entspricht
F: Wie kann man die Häufigkeit des ip-Wechsels in Scrapy einstellen?
A: Fügen Sie der Download-Middleware einen Zähler hinzu, z. B. ändern Sie die IP alle 5 Anfragen. Wenn Sie das Gleichzeitigkeitspaket von ipipgo verwenden, wird empfohlen, die Häufigkeit auf 200 Mal oder weniger in 1 Minute einzustellen.
F: Ist es in Ordnung, einen kostenlosen Proxy zu verwenden?
A: Bruder, du gräbst dir selbst eine Grube! Freie Agenten 90% sind Honigtöpfe, und wenn sie leicht sind, werden sie Daten verlieren, und wenn sie schwer sind, werden sie durch Anti-Climbing markiert werden. WiripipgoWarum sollte man einen unzuverlässigen Anbieter nutzen, wenn es ein 5-Dollar-Erlebnispaket für neue Abonnenten gibt?
Schließlich sagte eine Lektion in Tränen: im vergangenen Jahr mit Requests, um eine E-Commerce-Website zu fangen, nicht hängen die Agenten hart nur, die Ergebnisse der halben Stunde wurde der gesamte Server-Raum Ausfahrt ip blockiert. später mit Scrapy + ipipgo dynamischen Wohn-Agent ersetzt, hing laufen für drei Tage und drei Nächte nicht über das Auto drehen. So ah, das Werkzeug, um den richtigen Agenten an Ort und Stelle zu wählen, ist dies der König der Reptilien nicht über das Auto zu drehen!

