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)