
Cuando el crawler se encuentra con el informe de error Content-Type ¿cómo hacer?
Hace poco, un amigo que se dedica al comercio electrónico se quejaba de que el crawler que había escrito siempre era interceptado por el sitio web de destino. Le pedí que me enviara el código para ver, buen chico, ¡en la cabecera de la petición ni siquiera está puesto el Content-Type! Es como ir a casa de alguien y llamar a la puerta sin decir si es una entrega o una comprobación del contador del agua, por supuesto el portero no te deja entrar.
Muchos novatos tienden a ignorar este parámetro, de hechoContent-Type es su ID de red.. Especialmente cuando se hace recolección de datos con IP proxy, el servidor juzgará el tipo de solicitud por este campo. Hacemos rastreadores, el escenario más común es para que coincida con estos dos tipos:
application/x-www-form-urlencoded para el envío de formularios
application/json La interfaz API debe
Práctico: ponte un chaleco de proxy rizado
Suponiendo que ahora quiera acceder a una determinada API a través del servidor proxy de ipipgo, el comando curl correcto debería ser el siguiente:
curl -x http://username:password@proxy.ipipgo.cc:8080
-H "Content-Type: application/json"
-d '{"palabra clave": "móvil"}'
https://api.example.com/search
Hay que tener en cuenta algunos puntos clave:
- Sustituye el nombre de usuario en la dirección proxy por la cuenta que registraste en ipipgo.
- La contraseña sugiere una clave dinámica temporal (que puede generarse en el backend de ipipgo)
- El parámetro -x especifica el servidor proxy, no lo escriba como -proxy
Setenta y dos variaciones de Content-Type
Tienes que utilizar diferentes tipos para diferentes escenarios, he elaborado una lista de comprobación rápida:
| toma | Valor de Content-Type |
|---|---|
| Presentación general de formularios | application/x-www-form-urlencoded |
| Cargar archivos | multipart/form-data |
| Llamada a la API REST | application/json |
| Obtención de datos XML | aplicación/xml |
Cuando utilice los proxies rotatorios de ipipgo, recuerde llevar el Content-Type correcto para cada petición. su enrutamiento inteligente se ajustará automáticamente al mejor nodo, pero los dioses no pueden salvarle si las cabeceras de las peticiones no están configuradas correctamente.
Errores comunes Garantía de calidad
Q:¿Setting Content-Type sigue devolviendo 415 de error?
R: El 90% se debe a que el formato real de los datos transferidos no coincide con el tipo declarado. Por ejemplo, la cabecera escribe application/json, pero la parte de datos utiliza el formato de forma
P: ¿Qué debo hacer si la IP de mi proxy se agota con frecuencia?
R: En este caso, se recomienda cambiar al paquete enterprise de ipipgo, su proxy de conexión larga soporta el mecanismo de auto reintento. Recuerda añadir el parámetro timeout en curl:
--connect-timeout 30 Tiempo máximo de espera de conexión
--m 60 Tiempo máximo de solicitud
P: ¿Qué ocurre si necesito utilizar más de un Content-Type al mismo tiempo?
R: Básicamente no es así, sólo puede haber un tipo de contenido para una solicitud. Si se trata de datos mixtos, se puede procesar con segmentación de formato multiparte.
Di algo desde el corazón.
Participar en la tecnología es a veces como saltear, fuego condimento un poco peor sabor va a cambiar. La semana pasada para ayudar a los clientes a depurar un sistema de recogida, muertos no pueden obtener los datos, finalmente encontró que el Content-Type escrito como applicetion / json (menos a). Así que ah, con el proxy de ipipgo puede resolver el problema de IP, pero estas configuraciones básicas también deben ser cuidadosamente revisados.
Por último, si usted tiene necesidades de nivel empresarial, le recomendamos ir directamente al corredor de protocolo personalizado de ipipgo. Su soporte técnico puede ayudar a depurar los parámetros de cabecera de la solicitud, que su propio chisme para ahorrar un montón de dolores de cabeza. Novato registro recuerde que debe recibir tráfico de experiencia 3G, suficiente para probar.

