Praktische Anwendung von Node fetch zum Senden von POST-Anfragen
Kürzlich, eine Menge von Datenerfassung Kumpels gefragt, mit Node.js, um eine Anfrage an die Ziel-Site zu senden ist immer blockiert IP, wie zu tun? Diese Angelegenheit ist in der Tat das gleiche wie das Spiel zu spielen war verboten Nummer einen Grund, die Lösung ist auch sehr einfach ---Die große Proxy-IP-RotationDies ist das erste Mal, dass ich eine POST-Anfrage von einem Node-Fetch gesehen habe. Heute wollen wir den ipipgo-Dienst als Beispiel nehmen und darüber sprechen, wie man Node Fetch verwendet, um POST-Anfragen zu senden, ohne blockiert zu werden.
Vorbereitung der Grundausstattung
Installieren Sie zuerst eine node-fetch-Bibliothek, seien Sie nicht dumm und verwenden Sie das native Modul. Kommandozeile klopft dies:
npm install node-fetch@2 // Beachten Sie, dass ältere Versionen besser kompatibel sind.
Bereiten Sie einen zuverlässigen Proxy-Dienst vor, wie hier mit dem Dynamic Residential Proxy von ipipgo. Eine gute Sache über ihre Heimat ist, dassAutomatische IP-UmschaltungSie müssen keinen eigenen IP-Pool unterhalten. Nach der Registrierung und dem Erhalt des API-Schlüssels sieht die Proxy-Adresse wie folgt aus:
http://username:password@gateway.ipipgo.com:8080
Code-Disassemblierung in der realen Welt
Das ist der springende Punkt! Die Haltung des Vermittlers sollte nicht vergessen werden:
const fetch = require('node-fetch');
const HttpsProxyAgent = require('https-proxy-agent');
// Proxy-Zuweisungswert (achten Sie darauf, Ihr eigenes Konto zu ersetzen)
const proxyAgent = new HttpsProxyAgent(
'http://你的账号_不带中文:密码@gateway.ipipgo.com:8080'
).
async Funktion sendPost(url, data) {
async function sendPost(url, data) { try {
const response = await fetch(url, {
method: 'POST', body: JSON.stringify(data), async
headers: {'Content-Type': 'application/json'}, agent: proxyAgent // Der Schlüssel liegt im proxyAgent.
agent: proxyAgent // Der Schlüssel ist, den Proxy hier einzuhängen.
}); return await response.json()
return await response.json();
} catch (Fehler) {
console.log('Anfrage fehlgeschlagen:', error); }
}
}
// Anwendungsbeispiel
sendPost('https://api.某某网站.com/login', {
Benutzername: 'test',
Kennwort: '123456'
});
Achten Sie auf Schlaglöcher:
- Im Proxy-KontoBringen Sie kein Chinesisch mit.Andernfalls schlägt die Authentifizierung fehl.
- Wenn die Zielsite HTTPS verwendet, müssen Sie den https-proxy-agent anpassen.
- Das Setzen einer Zeitüberschreitung schlägt vor, ein setTimeout hinzuzufügen, damit Sie nicht warten müssen.
Gemeinsame Rollover-Szene QA
F: Was soll ich tun, wenn ich keine Verbindung zum Agenten herstellen kann?
A: Prüfen Sie zunächst, ob das Format der Proxy-Adresse korrekt ist, verwenden Sie dazu den Befehl curl:
curl -x http://账号:密码@gateway.ipipgo.com:8080 https://httpbin.org/ip
Q:Return 407 Agent Authentication Error?
A: Neunundneunzig Prozent der Kontopasswörter sind falsch, oder das Paket ist abgelaufen. Gehen Sie zu ipipgo background, um den restlichen Verkehr zu sehen
F: Wie erreiche ich eine IP-Änderung pro Anfrage?
A: Schalten Sie es in der ipipgo-Konsole einSwitch IP auf AnfrageModus, ohne etwas am Code zu ändern
Worauf sollte man bei einer Agentur achten?
Es gibt alle Arten von Proxy-Diensten auf dem Markt, aber man muss diese Punkte erkennen, um Daten zu sammeln:
Funktionalität | Serverraum-Agenten | Wohnungsvermittler |
---|---|---|
IP-Authentizität | ❌ Leicht zu erkennen | ✅ Echte Familie IP |
Gleichzeitige Anfragen | ✅ Multithreading-fähig | ⚠️ Eingeschränkt |
Wie die von ipipgo.Dynamische WohnungsvermittlerEs ist besser geeignet für Crawling-Szenarien, obwohl der Preis ist ein bisschen teurer als die Server-Raum-Agent, aber es ist nicht leicht zu verbieten. eine weitere wunderbare Sache über ihr Haus ist, dassGenaue Positionierung in der RegionWenn Sie z. B. Wetterdaten eines bestimmten Ortes erfassen möchten, können Sie die Ausgangs-IP der entsprechenden Stadt direkt sperren.
Tipps zum Einsparen von Verkehr
Zum Schluss möchte ich noch einen tollen Spartipp geben: Die ipipgo-Verkehrspakete nutzen diezeitabhängige AbrechnungDas Modell ist kostengünstiger als das monatliche Abonnement, besonders geeignet für die anfängliche Testphase des Projekts. Wenn das Geschäft stabil ist, dann schneiden Sie das monatliche Paket, so ist es nicht einfach, Geld auszugeben.
Wenn Sie in der Klemme stecken, können Sie sie vorher ausradieren.Probepaket(Neue Benutzer erhalten 1G Verkehr). Seien Sie jedoch vorsichtig, nicht zu verwenden, um in gewalttätigen Crawling engagieren, wird das Testpaket von IP-Qualität schlechter sein, die offizielle Arbeit haben auch auf die Version zu zahlen.