
Lorsque le crawler rencontre le rapport d'erreur Content-Type, comment faire ?
Récemment, un ami qui fait du commerce électronique s'est plaint à moi que le crawler qu'il a écrit était toujours intercepté par le site web cible. Je lui ai demandé d'envoyer le code pour voir, bon gars, l'en-tête de requête n'est même pas défini sur le Content-Type ! C'est comme aller chez quelqu'un et frapper à la porte sans dire s'il s'agit d'une livraison ou d'une vérification de compteur d'eau, bien sûr le portier ne vous laissera pas entrer.
De nombreux débutants ont tendance à ignorer ce paramètre, en faitContent-Type est l'identifiant de votre réseau.. En particulier lors de la collecte de données par proxy IP, le serveur évaluera le type de requête en fonction de ce champ. Dans le cas des crawlers, le scénario le plus courant consiste à faire correspondre ces deux types :
application/x-www-form-urlencoded pour la soumission de formulaires
application/json L'interface API doit
Pratique : mettre un gilet de protection sur la boucle
En supposant que vous souhaitiez accéder à une certaine API via le serveur proxy d'ipipgo, la commande curl correcte devrait ressembler à ceci :
curl -x http://username:password@proxy.ipipgo.cc:8080
-H "Content-Type : application/json"
-d '{"keyword" : "mobile"}'
https://api.example.com/search
Il y a quelques points clés à noter ici :
- Remplacez le nom d'utilisateur dans l'adresse du proxy par le compte que vous avez enregistré auprès d'ipipgo.
- Le mot de passe suggère une clé dynamique temporaire (qui peut être générée dans le backend d'ipipgo).
- Le paramètre -x spécifie le serveur proxy ; n'écrivez pas -proxy.
Soixante-douze variantes de Content-Type
Vous devez utiliser différents types pour différents scénarios, j'ai établi une liste de contrôle rapide :
| prendre | Valeur du type de contenu |
|---|---|
| Soumission d'un formulaire normal | application/x-www-form-urlencoded |
| Téléchargement de fichiers | multipart/form-data |
| Appeler l'API REST | application/json |
| Obtenir des données XML | application/xml |
Lorsque vous utilisez les serveurs mandataires rotatifs d'ipipgo, n'oubliez pas d'indiquer le bon type de contenu pour chaque demande. Leur routage intelligent permet de trouver automatiquement le meilleur nœud, mais les dieux ne peuvent pas vous sauver si les en-têtes de la demande ne sont pas configurés correctement.
Pièges courants AQ
Q:Setting Content-Type renvoie toujours 415 erreurs ?
R : Quatre-vingt-dix pour cent des cas sont dus au fait que le format réel des données transférées ne correspond pas au type déclaré. Par exemple, l'en-tête écrit application/json, mais la partie des données utilise le format de la forme
Q : Que dois-je faire si l'adresse IP de mon proxy est souvent dépassée ?
R : Dans ce cas, il est recommandé de passer à la version entreprise d'ipipgo, leur proxy de connexion longue prend en charge le mécanisme de réessai automatique. N'oubliez pas d'ajouter le paramètre timeout dans curl :
--connect-timeout 30 Délai de connexion
--m 60 Durée maximale de la demande
Q : Que se passe-t-il si je dois utiliser plus d'un Content-Type en même temps ?
R : Ce n'est pas du tout le cas, il ne peut y avoir qu'un seul type de contenu pour une demande. S'il s'agit de données mixtes, elles peuvent être traitées avec la segmentation du format multipartite.
Dites quelque chose qui vient du cœur.
S'engager dans la technologie, c'est parfois comme faire sauter un plat, l'assaisonner d'un peu de mauvais goût changera. La semaine dernière, pour aider des clients à déboguer un système de collecte, ils n'ont pas pu obtenir les données, et ont finalement découvert que le Content-Type était écrit comme applicetion/json (moins a). Ainsi, avec le proxy d'ipipgo, il est possible de résoudre le problème de l'IP, mais ces configurations de base doivent également être soigneusement vérifiées.
Enfin, si vous avez des besoins au niveau de l'entreprise, nous vous recommandons de vous adresser directement au courtier de protocole personnalisé d'ipipgo. Leur support technique peut vous aider à déboguer les paramètres de l'en-tête de la requête, plutôt que de procéder à leur propre test, ce qui vous évitera bien des maux de cœur. Lors de l'inscription des débutants, n'oubliez pas de recevoir du trafic 3G, suffisamment pour faire des tests.

