
Praktische Übungen zur Verwendung von PySpider zum Aufhängen von Proxies
Was ist die größte Angst der Crawler? Eine blockierte IP zu haben, gehört definitiv zu den drei größten Ängsten! Heute wollen wir darüber sprechen, wie man einem Crawler in PySpider eine Weste anlegt - mit einer Proxy-IP, um ihn sicher zu halten. Lassen Sie sich nicht von den komplizierten Anleitungen einschüchtern, die Konfiguration des Proxys ist einfacher als Nudeln kochen.
Warum muss ich eine Proxy-IP verwenden?
Um eine Kastanie: Sie gehen in den Supermarkt jeden Tag, um den Sonderpreis von Eiern zu greifen, drei aufeinanderfolgende Tage, um das gleiche rote Kleid zu tragen, der vierte Tag der Sicherheitskräfte direkt zu stoppen Sie außerhalb des Kindes. Proxy IP ist ein Schrank von Kleidung für die Crawler, jedes Mal, wenn Sie gehen und ändern zu tragen. Mit ipipgo's Proxy, ist es gleichbedeutend mit der Anmietung eines Bekleidungsgeschäftes direkt, mit "Kleidung" aus 200+ Ländern auf der ganzen Welt zur Auswahl.
Proxy-Konfiguration in drei Schritten
Importieren Sie zunächst das erforderliche Toolkit
from pyspider.libs.base_handler import
class MyCrawler(BaseHandler).
crawl_config = {
'proxy': 'http://username:password@proxy_ip:port', hier ist die von ipipgo bereitgestellte Proxy-Adresse
'headers': {
'Benutzer-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
}
}
@every(minutes=2460)
def on_start(self).
self.crawl('http://目标网站.com', callback=self.index_page)
Höhepunkte:Wenn die Proxy-Adresse im ipipgo-Backend abgerufen wird, denken Sie daran, das HTTP/HTTPS-Protokollformat auszuwählen. Die Verwendung einer dynamischen Wohn-IP wird empfohlenDynamic Residential (Standard) Paketist mit 7,67 $/GB besonders einsteigerfreundlich.
Automatische Umschaltung der dynamischen IP
Ich möchte die automatische Änderung der IP pro Anfrage zu implementieren, mit ipipgo's API-Schnittstelle zu greifen und zu verwenden:
zufällig importieren
def get_proxy().
Hier rufen wir die API-Schnittstelle von ipipgo auf
proxy_list = ["ip1:port", "ip2:port", "ip3:port"]
return random.choice(proxy_list)
class AutoProxyHandler(BaseHandler).
class AutoProxyHandler(BaseHandler): def make_request(self, url, callback): return Request(url, callback).
return Anfrage(url, callback
callback=callback, proxy=get_proxy())
proxy=get_proxy()) Wird bei jeder Anfrage automatisch geladen.
Leitfaden zur Vermeidung der Grube (QA-Sitzung)
F: Was sollte ich tun, wenn der Agent plötzlich ausfällt?
A: ipipgo Client kommt mit Heartbeat-Erkennung, festgestellt, dass die IP hängt automatisch schneiden die neue IP, mit dem Mobiltelefon automatisch eine Verbindung zu WiFi einen Grund.
F: Wie kann ich testen, ob der Proxy funktioniert?
A: Fügen Sie dem Crawler einen Testschritt hinzu:
self.crawl('http://httpbin.org/ip', callback=self.check_ip)
def check_ip(self, response): print(response.text)
print(response.text) Die hier angezeigte IP sollte eine Proxy-IP sein.
Wie man ein Paket auswählt, ohne die Mine zu betreten
| Geschäftsart | Empfohlene Pakete | Anwendbare Szenarien |
|---|---|---|
| Hochfrequenz-Datenerfassung | Statische Häuser | 35/IP kann einen ganzen Monat lang verwendet werden, geeignet für Langzeitüberwachung |
| Enterprise Crawler | Dynamischer Wohnungsbau (Unternehmen) | 9,47/GB mit VIP-Kanal, Daten schneller abrufen! |
| Einzelne kleine Projekte | Dynamisches Wohnen (Standard) | 7,67 Kohlpreis, Erste Wahl für die Praxis |
Schließlich, verschwenden Sie nicht Ihre Zeit auf kostenlose Proxys, ich habe sie getestet, und 8 von 10 kostenlose Proxys sind schlecht. ipipgo's TK Linie hat eine gemessene Latenz von weniger als 200ms, die fast so schnell wie das lokale Netzwerk ist. Ihr Kundendienst kann auch kundenspezifische Lösungen anbieten, zuletzt einen Bruder, der die südostasiatischen E-Commerce-Daten direkt mit einer grenzüberschreitenden Leitung abrufen konnte.

