
Was ist zu tun, wenn das Crawling von PHP durch Anti-Crawl angegriffen wird? Versuchen Sie diesen Trick
Die alten Eisen getan haben Web-Crawling zu verstehen, die Ziel-Site-Anti-Climbing-Mechanismus ist wie Kraft Zucker kann nicht abgeschüttelt werden. 403, 429 Fehler jeden Tag zu sehen, die IP blockiert ist ein häufiges Vorkommen. Zu dieser ZeitProxy-IPEs ist ein Lebensretter, vor allem, wenn Sie PHP zum Crawlen verwenden. Mit diesem Tool können Sie den Site Monitor umgehen und zum "Mann mit den tausend Gesichtern" werden.
Wie spielen Sie mit Proxy-IPs für Reverse Crawling?
Es gibt drei Hauptmerkmale, anhand derer Websites einen Crawler erkennen:Häufigkeit der Anfragen, Verhaltensmerkmale, IP-SpurenDas erste, was Sie tun müssen, ist, eine einzige IP zu verwenden, um eine Schnellanfrage zu stellen. Mit einer einzigen IP eine hektische Anfrage zu stellen, ist so, als würde man 100 Mal hintereinander durch einen Supermarkt gehen, ohne zu bezahlen - und wen wird der Sicherheitsbeamte anstarren, wenn nicht Sie? Das Schöne an Proxy-IPs ist Folgendes:
| Anti-Klettertaktik | Proxy-IP-Antwortprogramm |
|---|---|
| IP-Frequenzbegrenzung | Automatisches Umschalten zwischen verschiedenen Export-IPs |
| Analyse des Benutzerverhaltens | Simulieren Sie die Fingerabdrücke verschiedener Geräte |
| IP-Blacklisting | Massive IP-Pool-Rotation |
PHP-Real-Proxy-Konfigurationsschritt schlagen
Hier ein Beispiel dafür, was Sie mit folgenden Mitteln tun könnenipipgoDer Proxy-Service, um eine Kastanie zu geben, bietet ihre Familie API, um die neuesten Proxy direkt zu bekommen. Zunächst die ganze grundlegende Code:
// Abrufen der Proxy-IP (unter Verwendung des API-Beispiels von ipipgo hier)
$proxy = json_decode(file_get_contents('https://api.ipipgo.com/getproxy'));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "Ziel-URL");
curl_setopt($ch, CURLOPT_PROXY, $proxy->ip.':'.$proxy->port);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy->Benutzername.':'.$proxy->Passwort);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
Hier kommt der entscheidende Punkt:Timeout-EinstellungUm niedriger zu sein als die Proxy-Reaktionszeit (empfohlen 3-5 Sekunden), Begegnung lag sofort schneiden die nächste IP. plus zufällige Verzögerung realistischer:
// zufällig 1-3 Sekunden warten
usleep(rand(1000000, 3000000));
Fortgeschrittene Tarntechniken werden im Paket vermittelt
Es reicht nicht aus, die IP zu ändern, man muss den ganzen Trick anwenden:
- User-Agent Rotation: Verwenden Sie nicht die CURL-Standard-UA, sondern bereiten Sie Dutzende gängiger Browser-UAs für eine zufällige Auswahl vor
- Der Request-Header sollte einen Referer enthalten, der vorgibt, von der Website zu springen
- Behalten Sie den Login-Status mit CookieJar, bringen Sie nicht für jede Anfrage ein neues Cookie mit!
Nennen Sie ein Beispiel mit einem getarnten Kopf:
$headers = [
'Accept: text/html,application/xhtml+xml',
'Accept-Language: zh-CN,zh;q=0.9',
'Referer: https://目标网站.com/'
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
Gemeinsame Rollover-Szene QA
F: Wie oft verwende ich eine Proxy-IP und werde gesperrt?
A: Sie müssen einen Proxy mit hoher Anonymität wählen (ich empfehle den gemischten Einwahlknoten von ipipgo), normale anonyme Proxys geben den X-Forwarded-For-Header preis.
F: Langsam wie eine Schnecke beim Kriechen?
A: Prüfen Sie die Antwortzeit des Proxys, die durchschnittliche Verzögerung der ipipgo-Knoten ist <200ms, viel schneller als ein selbst gebauter Proxy
F: Wie wähle ich einen Proxy-Dienstanbieter aus?
A: Konzentration auf drei Dinge: Größe des IP-Pools (ipipgo hat 200w+), Protokollunterstützung (Unterstützung von socks5), API-Stabilität (Mechanismus zur Wiederholung von Fehlern)
Bitte beachten Sie den Leitfaden, um Fallstricke zu vermeiden
Ein paar letzte blutige Lektionen:
- Schreiben Sie keine toten Proxy-IPs in Ihren Code, verwenden Sie die Dynamic Get API!
- https-Website, um Tunnel-Proxy zu verwenden, normaler Proxy meldet SSL-Fehler
- Denken Sie daran, verschiedene Proxys für asynchrone Anfragen zu binden und eine IP nicht mit mehreren Anfragen zu teilen.
Verwenden Sie diese Tipps in Verbindung mitipipgoDer zuverlässige Proxy-Dienst kann sich grundsätzlich um den Anti-Crawling-Mechanismus von 90% kümmern. Denken Sie daran, dass der Website-Schutz auch aktualisiert wird, und die Crawling-Strategien sollten regelmäßig angepasst werden, um dynamische Gegenmaßnahmen aufrechtzuerhalten.

