
Erstens: Warum wird Ihr Crawler immer von der Website gezogen?
Viele Freunde, die Datenerhebungen durchführen, sind auf diese Situation gestoßen: Offensichtlich gibt es kein Problem mit dem Code, aber das Programm läuft und fordert den403 Verweigerung des Zugangsoder einfach eine Warn-E-Mail von der Website erhalten. Es ist, wie wenn man in den Supermarkt geht, um die Lebensmittel zu probieren, und schon nach ein paar Bissen wird man vom Sicherheitspersonal beobachtet, obwohl das Problem in Wirklichkeit...Ihre Internet-Fingerabdrücke sind zu offensichtlich..
Der Webserver identifiziert den Crawler durch mehrere Dimensionen wie IP-Adresse, Häufigkeit der Anfragen, Merkmale der Anfrage-Header und so weiter. Vor allem, wenn Ihre Anfragen kommen von der gleichen IP, wie das Tragen einer Arbeitskarte zu versuchen, zu essen, nicht fangen Sie fangen, die? Dieses Mal müssen Sie den Crawler geben, um einen "Mantel der Unsichtbarkeit" zu tragen, das heißt, wir werden sagen, dass dieProxy-IP-Technologie.
Zweitens: Wählen Sie die richtige Proxy-IP aus den drei Tipps
Es gibt so viele Proxy-Anbieter auf dem Markt, aber nur wenige von ihnen sind zuverlässig. Nach unserer Erfahrung mit der Bereitstellung von Crawlern für mehr als 500 Unternehmen sind diese drei Kriterien am wichtigsten:
Demonstration des Fehlers: Nackte Anfrage
importiere Anfragen
Antwort = requests.get("https://目标网站")
Richtige Haltung: Proxies tragen
proxies = {
'http': 'http://user:pass@ipipgo-proxy-server:port',
'https': 'http://user:pass@ipipgo-proxy-server:port'
}
response = requests.get(url, proxies=proxies)
1. IP-ReinheitSie müssen sich für einen Rechenzentrums-Proxy wie ipipgo entscheiden, nicht für einen öffentlichen Proxy-Pool. Ihre IP ist der Serverraum direkt ziehen Standleitung, wird nicht mit anderen teilen!
2. Protokoll-UnterstützungJetzt eine Menge von Websites sind mit HTTPS, müssen Sie sicherstellen, dass der Proxy unterstützt socks5/http(s) alle Protokolle. Bevor ein Kunde mit einem bestimmten Proxy, das Ergebnis der Begegnung mit gemischten Inhalten Websites direkt zu stoppen!
3. SchalthäufigkeitEs wird empfohlen, die IP alle 5-10 Anfragen zu ändern. Die API von ipipgo kann die neueste IP direkt abrufen, was viel weniger mühsam ist, als wenn man sie manuell ändern muss.
Drittens, die eigentliche Konfiguration zur Vermeidung der Grubenführung
Hier sind ein paar einfache Punkte, die Sie am Beispiel der Python-Request-Bibliothek erläutern können:
Mythos 1Der Proxy ist das Einzige, was zählt, aber dann verrät der Request Header, dass es sich um einen Proxy handelt. Denken Sie daran, den User-Agent zufällig zu generieren, verwenden Sie nicht den, der mit den Anfragen kommt:
from fake_useragent import UserAgent
headers = {'User-Agent': UserAgent().random}
Mythos 2Die Timeout-Einstellung ist zu kurz. Es kann leicht zu Fehleinschätzungen kommen, wenn das Netzwerk schwankt. Es wird daher empfohlen, ein Timeout von mindestens 10 Sekunden einzustellen:
response = requests.get(url, proxies=proxies, timeout=10)
Mythos 3Ignorieren der Ausnahmebehandlung. Es wird empfohlen, das Modul retrying zu verwenden, um Wiederholungen durchzuführen, etwa so:
von retrying importieren retry
@retry(stop_max_attempt_number=3)
def safe_request(url).
try.
return requests.get(url, proxies=proxies, timeout=15)
except Exception as e.
print(f "Anfrage fehlgeschlagen, IPs gewechselt und erneut versucht: {str(e)}")
Hier rufen wir die ipipgo API auf, um zu einer neuen IP zu wechseln.
update_proxy()
raise e
IV. häufig gestellte Fragen QA
F: Was sollte ich tun, wenn ich eine Proxy-IP verwende und trotzdem gesperrt werde?
A: Prüfen Sie zunächst, ob es sich um einen Proxy mit hoher Anonymität handelt (wie bei ipipgo sind alle Proxys mit hoher Anonymität), dann reduzieren Sie die Häufigkeit der Anfragen, es ist besser, eine zufällige Verzögerung (0,5-3 Sekunden) zwischen den Anfragen einzufügen.
F: Ist die Proxy-IP-Geschwindigkeit zu langsam, um die Effizienz zu beeinträchtigen?
A: Es wird empfohlen, das nach Bandbreite abgerechnete Paket zu wählen. Die BGP-Leitung von ipipgo hat eine durchschnittliche Latenz von 80 ms oder weniger und ist damit mehr als 3-mal schneller als gewöhnliche Agenten!
F: Wie kann ich prüfen, ob der Agent gültig ist?
A: Sie können in regelmäßigen Abständen http://ipipgo.com/checkip besuchen. Diese Erkennungsschnittstelle zeigt die derzeit verwendete IP und Anonymität an.
V. Instandhaltungsstrategie und Kostenkontrolle
Viele Neulinge begehen den Fehler, in der Anfangsphase hektisch nach Daten zu greifen, was dazu führt, dass das Projekt läuft und die Agenturgebühr überteuert ist. Hier können Sie zwei Tricks lernen:
1. Intelligente SchaltstrategieVerwenden Sie einen normalen Proxy für statische Seiten und wechseln Sie dann zu einem hochwertigen Proxy, wenn Sie auf eine Seite mit einer strengen Anti-Climbing-Politik stoßen. ipipgo unterstützt nach Qualität abgestufte Anrufe, was die Kosten für 301 TP3T spart.
2. Lokaler Caching-MechanismusFestlegen der lokalen Cache-Zeit für Daten, die sich nicht oft ändern. Zum Beispiel kann der Preis von Waren für 6 Stunden zwischengespeichert werden, um die Anzahl der Anfragen zu reduzieren, ohne das Geschäft zu beeinträchtigen.
3. Überwachung von AusnahmenEs wird empfohlen, Prometheus + grafana zu verwenden, um die Überwachung der großen Tafel zu tun, wenn die Erfolgsquote niedriger ist als 95% automatischen Alarm, rechtzeitige Untersuchung ist der Agent Problem oder Website-Revision
Schließlich, um ehrlich zu sein, kriechen diese Linie von Werkzeugen, um die richtige Hälfte des Erfolgs zu wählen. Wie unsere technische Abteilung ist jetzt mit ipipgo Proxy-Service, Stabilität als vor dem selbst gebauten Proxy-Pool ist zu stark, der Schlüssel ist ihre technische Kundendienst ist wirklich 24 Stunden am Tag online, die letzten drei Uhr morgens zu erwähnen, die Arbeit, um tatsächlich Sekunden zurück, dieser Punkt ist wirklich überzeugend.

