
Wenn der Crawler auf den Gegen-Crawler trifft: Was ist zu tun, wenn die normale IP begrenzt ist?
Der alte Fahrer des Crawlers weiß, dass der Anti-Climbing-Mechanismus der Website mehr und mehr pervertiert wird. Letzte Woche mit ihren eigenen Heim-Breitband-IP-Crawl-Daten, auf den ersten ganz glatt, die Ergebnisse der nächsten Tag direkt auf meine schwarze Liste. Zu dieser Zeit haben wir aus unserem Retter zu bewegen -Dynamischer Proxy-IP-Pool. Als ob das Spiel zu spielen, um eine kleine Zahl zu öffnen, jede Anfrage für eine neue Identität, so dass die Anti-Taschendieb-System kann nicht das Gesetz fühlen.
Hier einen Ausdruck einfügen (auf Wunsch des Chefs):Kurzlebiger Proxy-Pool für ipipgoGetestet, um zu arbeiten, 5 Minuten, um automatisch ändern IP, Unterstützung http/https/socks5 drei Protokolle. Der Schlüssel ist200+ städtische Serverraumknoten landesweitWenn Sie sich irgendwo als Benutzer tarnen wollen, können Sie das. Hier verwenden wir NodeJS + Puppeteer, um eine echte Schlacht zu bekommen.
Puppeteer Grundkonfiguration Laufband
Beginnen Sie mit der Installation von Puppeteer-Extra und dem Stealth-Plugin, verwenden Sie nicht die nativen Bibliotheken. Hier gibt es einen Fallstrick: Chromium stellt standardmäßig Headless-Funktionen zur Verfügung, Sie müssen ein paar Parameter hinzufügen, um sie zu verschleiern:
const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());
async Funktion launchBrowser() {
const browser = await puppeteer.launch({
headless: "new",
args: [
'--disable-web-security'.
'--proxy-server=http://username:password@proxy.ipipgo.com:9020',
'--lang=zh-cn',
'--disable-blink-features=AutomationControlled'
]
--disable-blink-features=AutomationControlled' ] }); return browser; return
return browser; }
}
zur Kenntnis nehmenProxy-Server Parameter FormatDen Benutzernamen und das Passwort von ipipgo sollten Sie durch Ihren eigenen ersetzen. Hier ist eine gute Idee: Hängen Sie den Proxy direkt in args ein, das ist stabiler als die Einrichtung in page.
IP-Rotationsstrategie Leben und Tod
Es reicht nicht, sich einen Agenten zu angeln, man muss es auch lernen.Intelligente IP-Vermittlung. Es wird empfohlen, eine Doppelversicherung abzuschließen:
| Auslösebedingung | Reaktionsstrategie |
|---|---|
| 3 aufeinanderfolgende fehlgeschlagene Anfragen | Sofortiger Wechsel zur neuen IP |
| Einzelne IP-Nutzung über 10 Minuten | Aktive Freigabe Verbindung |
| CAPTCHA-Blockierung trifft auf | Wechsel der Stadtknoten |
Ein Code-Schnipsel aus der Praxis:
let retryCount = 0;
async function safeVisit(url) {
await page.goto(url, {timeout: 60000}); async function
await page.geto(url, {timeout: 60000}); }; async function let safeVisit(url) { try {
} catch (e) {
if(retryCount++ >= 3) {
await rotateProxy(); // Aufruf der API von ipipgo zum Ändern der IPs
retryCount = 0; }
}
}
}
Praktisch: Skript zur Preisüberwachung im elektronischen Handel
Ein Beispiel: Eine E-Commerce-Plattform (ohne einen konkreten Namen zu nennen) muss den Preis eines Produkts erfassen. Hier ist eines.Anti-Rückwärts-KrabbeltechnikDie erste Proxy-IP für den Zugriff auf die Produktlistenseite, und dann die echte IP verwenden, um die Detailseite zu überprüfen. Da die Windkontrolle der Listenseite streng ist, ist die Detailseite relativ locker.
Konfigurieren von ipipgo'sPaket zur Abrechnung auf AbrufAm besten verwenden Sie den 80% Proxy-Verkehr für die enge Windkontrolle. Denken Sie daran, auf ihre drehenIntelligentes RoutingFunktion, die automatisch den Knoten mit der geringsten Latenz auswählt.
Frage-und-Antwort-Runde
F: Was sollte ich tun, wenn meine Proxy-IP häufig ausfällt?
A: 80% von ihnen verwenden einen öffentlichen Proxy-Pool. Wechseln Sie zu ipipgo'sDedizierte Bandbreitenleitungenim Hintergrund zu aktivieren TCP lange Verbindung Multiplexing, kann die Timeout-Rate von 60% zu reduzieren.
F: Wie unterbreche ich die menschliche Überprüfung, wenn ich auf sie stoße?
A: Seien Sie nicht starr, wechseln Sie sofort die IP, während Sie die Browser-Fingerabdrücke ändern. ipipipgoUnterstützung von mehreren ProtokollenEs ist möglich, Socken5 und http-Proxys zu mischen, um die Tarnungsvielfalt zu erhöhen.
F: Wie erreiche ich hohe Gleichzeitigkeit, wenn ich sie brauche?
A: Verwenden Sie ihrePort-Aggregations-Technologiekann ein einzelnes Konto 500+ Verbindungen gleichzeitig initiieren. Denken Sie daran, mit Puppeteer-Cluster ein verteiltes Scheduling durchzuführen, um den Nodejs-Prozess nicht zu sprengen.
Eine letzte Bemerkung: Viele Websites verwenden jetzt dieIP-VerhaltensanalyseEs reicht nicht aus, nur die IP zu ändern, man muss auch die Häufigkeit der Besuche kontrollieren. Setzen Sie ipipgo'sAnfrage-Intervall-PolitikVerwenden Sie diese Funktion in Verbindung mit der Zufallsverzögerung des Browsers, um Daten über einen längeren Zeitraum hinweg konsistent auszuführen.

