Wenn der Crawler den Content-Type-Fehlerbericht trifft, was ist zu tun?
Kürzlich beschwerte sich ein Freund, der E-Commerce betreibt, bei mir, dass der von ihm geschriebene Crawler immer von der Ziel-Website abgefangen wurde. Ich bat ihn, den Code zu senden, um zu sehen, guter Mann, die Anfrage-Header ist nicht einmal die Content-Type gesetzt! Das ist so, als würde man zu jemandem nach Hause gehen und an die Tür klopfen, ohne zu sagen, ob es sich um eine Lieferung oder eine Wasserzählerkontrolle handelt, und natürlich lässt einen der Pförtner nicht rein.
Viele Neulinge neigen dazu, diesen Parameter zu ignorieren, und zwarContent-Type ist Ihre Netzwerk-ID.. Insbesondere bei der Datenerfassung mit Proxy-IP wird der Server die Art der Anfrage anhand dieses Feldes beurteilen. Wir machen Crawler, das häufigste Szenario ist, diese beiden Typen abzugleichen:
application/x-www-form-urlencoded für Formularübermittlung
application/json API-Schnittstelle muss
Praktisch: eine Proxy-Weste über die Locke ziehen
Angenommen, Sie wollen nun über den Proxy-Server von ipipgo auf eine bestimmte API zugreifen, dann sollte der korrekte curl-Befehl wie folgt aussehen:
curl -x http://username:password@proxy.ipipgo.cc:8080
-H "Content-Type: application/json"
-d '{"keyword": "mobile"}'
https://api.example.com/search
Hier gibt es einige wichtige Punkte zu beachten:
- Ersetzen Sie den Benutzernamen in der Proxy-Adresse durch das Konto, das Sie bei ipipgo registriert haben.
- Das Passwort schlägt einen temporären dynamischen Schlüssel vor (der im ipipgo-Backend generiert werden kann)
- Der Parameter -x gibt den Proxyserver an; schreiben Sie nicht -proxy.
Zweiundsiebzig Variationen von Content-Type
Sie müssen verschiedene Typen für verschiedene Szenarien verwenden, ich habe eine kurze Checkliste zusammengestellt:
Nehmen Sie | Inhalt-Typ-Wert |
---|---|
Einreichung eines normalen Formulars | anwendung/x-www-form-urlencoded |
Hochladen von Dateien | multipart/form-data |
Aufrufen der REST-API | anwendung/json |
Abrufen von XML-Daten | Anwendung/xml |
Wenn Sie die rotierenden Proxys von ipipgo verwenden, denken Sie daran, für jede Anfrage den richtigen Content-Type anzugeben. Ihr intelligentes Routing findet automatisch den besten Knotenpunkt, aber die Götter können Sie nicht retten, wenn die Header der Anfrage nicht korrekt konfiguriert sind.
Häufige Fallstricke QA
Q:Setting Content-Type liefert immer noch 415 Fehler?
A: Neunzig Prozent der Fälle liegen daran, dass das tatsächlich übertragene Datenformat nicht mit dem deklarierten Typ übereinstimmt. Zum Beispiel schreibt der Header application/json, aber der Datenteil verwendet das Format der Form
F: Was sollte ich tun, wenn meine Proxy-IP häufig ausfällt?
A: In diesem Fall wird empfohlen, auf das Enterprise-Paket von ipipgo umzusteigen, dessen Proxy für lange Verbindungen einen automatischen Wiederholungsmechanismus unterstützt. Denken Sie daran, den Parameter timeout in curl hinzuzufügen:
--connect-timeout 30 Zeitüberschreitung für die Verbindung
--m 60 Maximale Anfragezeit
F: Was ist, wenn ich mehr als einen Content-Type gleichzeitig verwenden muss?
A: Das ist grundsätzlich nicht der Fall, es kann nur einen Inhaltstyp für eine Anfrage geben. Handelt es sich um gemischte Daten, können diese mit der Multipart-Format-Segmentierung verarbeitet werden.
Sagen Sie etwas, das von Herzen kommt.
Engaging in der Technologie ist manchmal wie Pfannenrühren, Feuer würzen ein wenig schlechter Geschmack ändern wird. Letzte Woche, um Kunden zu helfen, eine Sammlung System debuggen, tot kann nicht die Daten zu bekommen, schließlich festgestellt, dass der Content-Type als applicetion/json (weniger a) geschrieben. So ach, mit ipipgo's Proxy kann das IP-Problem zu lösen, aber diese grundlegenden Konfigurationen müssen auch sorgfältig geprüft werden.
Wenn Sie Anforderungen auf Unternehmensebene haben, empfehlen wir Ihnen, sich direkt an den benutzerdefinierten Protokollbroker von ipipgo zu wenden. Der technische Support von ipipgo kann Ihnen bei der Fehlersuche in den Request-Header-Parametern behilflich sein und so viel Ärger ersparen. Newbie-Registrierung denken Sie daran, 3G-Erfahrung Verkehr zu erhalten, genug zu testen.