pages example español crawling crawler python json scrapy web-crawler

python - example - scrapy ruby



HTTP POST y análisis JSON con Scrapy (3)

En función de mi comprensión de la pregunta, solo desea buscar / raspar datos de una página web en ciertos intervalos. Scrapy generalmente se usa para gatear.

Si solo desea realizar solicitudes posteriores a http, puede considerar el uso de la biblioteca de solicitudes de python .

Tengo un sitio del que quiero extraer datos. La recuperación de datos es muy directa.

Toma los parámetros usando HTTP POST y devuelve un objeto JSON. Entonces, tengo una lista de consultas que quiero hacer y luego repito a ciertos intervalos para actualizar una base de datos. ¿La terapia es adecuada para esto o debería usar otra cosa?

En realidad, no necesito seguir los enlaces, pero sí tengo que enviar varias solicitudes al mismo tiempo.


Para el manejo de solicitudes y recuperación de respuesta, scrapy es más que suficiente. Y para analizar JSON, solo use el módulo json en la biblioteca estándar:

import json data = ... json_data = json.loads(data)

¡Espero que esto ayude!


¿Qué aspecto tiene la solicitud POST? Hay muchas variaciones, como parámetros simples de consulta ( ?a=1&b=2 ), carga útil similar a la forma (el cuerpo contiene a=1&b=2 ) o cualquier otro tipo de carga (el cuerpo contiene una cadena en algún formato, como json o xml).

En scrapy es bastante sencillo realizar solicitudes POST, consulte: http://doc.scrapy.org/en/latest/topics/request-response.html#request-usage-examples

Por ejemplo, puede necesitar algo como esto:

# Warning: take care of the undefined variables and modules! def start_requests(self): payload = {"a": 1, "b": 2} yield Request(url, self.parse_data, method="POST", body=urllib.urlencode(payload)) def parse_data(self, response): # do stuff with data... data = json.loads(response.body)