mgaitan / preciosa

Inteligencia colectiva contra la inflación
http://preciosdeargentina.com.ar
Other
68 stars 40 forks source link

Formato del JSON entregado por los scrapers & código de ciudad. #40

Closed cttn closed 10 years ago

cttn commented 10 years ago

@mgaitan Tengo un par de dudas.

Formato JSON

Ya tengo listo los dumps en json. La primer duda es sobre el formato. ¿Está bien si el scraper entrega una lista? Del estilo que tenés dentro de "fields" en los fixtures. Por ejemplo para Mariano Max, los dumps que genero son:

[{"nombre": "Cruz del Eje (Suc. 6)", "ciudad": "Cruz del eje", "horarios": "Lunes a S\u00e1bados: de 8 hs. a 13 hs. y de 17 hs. a 22 hs.Domingos y Feriados: de 9 hs. a 13 hs.", "direccion": "Jos\u00e9 Hern\u00e1ndez esq. Mitre, Cruz del Eje \u2013 Provincia de C\u00f3rdoba."}, {"nombre": "Jes\u00fas Mar\u00eda (Suc. 4)", "ciudad": "Jesus Maria", "horarios": "Lunes a S\u00e1bados: de 8 hs. a 13 hs. y de 17 hs. a 21.30 hs.Domingos y Feriados: de 9 hs. a 13.30 hs.", "direccion": "Italia 363, Jes\u00fas Mar\u00eda."}, {"nombre": "Jos\u00e9 Ignacio D\u00edaz (Suc. 1)", "ciudad": "Cordoba", "horarios": "Lunes a S\u00e1bado: de 8 hs. a 13 hs. y de 17 hs. a 21 hs.Domingos y Feriados: de 9 hs. a 13 hs.", "direccion": "Av. 11 de Setiembre 2765 - B\u00b0 Jos\u00e9 Ignacio Diaz 2da Secci\u00f3n."}, {"nombre": "Villa Corina (Suc. 2)", "ciudad": "Cordoba", "horarios": "Lunes a S\u00e1bados: de 8 hs. a 22 hs.Domingos y Feriados: de 9 hs. a 22 hs.", "direccion": "Av. A. Capdevila 1831 esq. Rancagua - B\u00b0 Villa Corina."}, {"nombre": "Amp. Centro Am\u00e9rica (Suc. 3)", "ciudad": "Cordoba", "horarios": "Lunes a S\u00e1bados: de 8 hs. a 13 hs. y de 17 hs. a 21 hs.Domingos y Feriados: de 9 hs. a 13 hs.", "direccion": "Av. Saavedra Lamas 900 esq. L. Membrives - B\u00b0 A. C. Am\u00e9rica."}, {"nombre": "Los Pl\u00e1tanos (Suc. 5)", "ciudad": "Cordoba", "horarios": "Lunes a S\u00e1bados: de 8 hs. a 22 hs.Domingos y Feriados: de 9 hs. a 22 hs.", "direccion": "Santa Ana 3551 esq. F\u00e9lix Paz - B\u00ba Los Pl\u00e1tanos."}, {"nombre": "Las Flores (Suc. 7)", "ciudad": "Cordoba", "horarios": "Lunes a S\u00e1bados: de 8 hs. a 22 hs.Domingos y Feriados: de 9 hs. a 22 hs.", "direccion": "Av. Velez Sarsfield 4051 \u2013 Provincia de C\u00f3rdoba."}]

¿O necesitás que te pase también los parámetros "pk" y "model"?

Segunda duda

Como verás, las ciudades aún están referenciadas por nombre, lo cual es ambiguo, tenés razón. ¿Te parece bien si directamente te paso el código de la ciudad, de acuerdo a los códigos que usas en tus fixtures?

Resolviendo estas dudas, hoy mismo te entrego los scrapers de Hiper Libertad, Mariano Max y Yaguar. Aún pueden quedar errores, va quedando cada vez más completo.

mgaitan commented 10 years ago

el formato está perfecto. una lista de diccionarios. si encontrás el ID de la ciudad, serás aun más capo.

abrazo

2014-02-09 12:26 GMT-03:00 Carlos notifications@github.com:

@mgaitan https://github.com/mgaitan Tengo un par de dudas. Formato JSON

Ya tengo listo los dumps en json. La primer duda es sobre el formato. ¿Está bien si el scraper entrega una lista? Del estilo que tenés dentro de "fields" en los fixtures. Por ejemplo para Mariano Max, los dumps que genero son:

[{"nombre": "Cruz del Eje (Suc. 6)", "ciudad": "Cruz del eje", "horarios": "Lunes a S\u00e1bados: de 8 hs. a 13 hs. y de 17 hs. a 22 hs.Domingos y Feriados: de 9 hs. a 13 hs.", "direccion": "Jos\u00e9 Hern\u00e1ndez esq. Mitre, Cruz del Eje \u2013 Provincia de C\u00f3rdoba."}, {"nombre": "Jes\u00fas Mar\u00eda (Suc. 4)", "ciudad": "Jesus Maria", "horarios": "Lunes a S\u00e1bados: de 8 hs. a 13 hs. y de 17 hs. a 21.30 hs.Domingos y Feriados: de 9 hs. a 13.30 hs.", "direccion": "Italia 363, Jes\u00fas Mar\u00eda."}, {"nombre": "Jos\u00e9 Ignacio D\u00edaz (Suc. 1)", "ciudad": "Cordoba", "horarios": "Lunes a S\u00e1bado: de 8 hs. a 13 hs. y de 17 hs. a 21 hs.Domingos y Feriados: de 9 hs. a 13 hs.", "direccion": "Av. 11 de Setiembre 2765 - B\u00b0 Jos\u00e9 Ignacio Diaz 2da Secci\u00f3n."}, {"nombre": "Villa Corina (Suc. 2)", "ciudad": "Cordoba", "horarios": "Lunes a S\u00e1bados: de 8 hs. a 22 hs.Domingos y Feriados: de 9 hs. a 22 hs.", "direccion": "Av. A. Capdevila 1831 esq. Rancagua - B\u00b0 Villa Corina."}, {"nombre": "Amp. Centro Am\u00e9rica (Suc. 3)", "ciudad": "Cordoba", "horarios": "Lunes a S\u00e1bados: de 8 hs. a 13 hs. y de 17 hs. a 21 hs.Domingos y Feriados: de 9 hs. a 13 hs.", "direccion": "Av. Saavedra Lamas 900 esq. L. Membrives - B\u00b0 A. C. Am\u00e9rica."}, {"nombre": "Los Pl\u00e1tanos (Suc. 5)", "ciudad": "Cordoba", "horarios": "Lunes a S\u00e1bados: de 8 hs. a 22 hs.Domingos y Feriados: de 9 hs. a 22 hs.", "direccion": "Santa Ana 3551 esq. F\u00e9lix Paz - B\u00ba Los Pl\u00e1tanos."}, {"nombre": "Las Flores (Suc. 7)", "ciudad": "Cordoba", "horarios": "Lunes a S\u00e1bados: de 8 hs. a 22 hs.Domingos y Feriados: de 9 hs. a 22 hs.", "direccion": "Av. Velez Sarsfield 4051 \u2013 Provincia de C\u00f3rdoba."}]

¿O necesitás que te pase también los parámetros "pk" y "model"? Segunda duda

Como verás, las ciudades aún están referenciadas por nombre, lo cual es ambiguo, tenés razón. ¿Te parece bien si directamente te paso el código de la ciudad, de acuerdo a los códigos que usas en tus fixtures?

Resolviendo estas dudas, hoy mismo te entrego los scrapers de Hiper Libertad, Mariano Max y Yaguar. Aún pueden quedar errores, va quedando cada vez más completo.

— Reply to this email directly or view it on GitHubhttps://github.com/mgaitan/preciosa/issues/40 .

mgaitan.github.io textosyprextextos.com.ar

cttn commented 10 years ago

Listo @mgaitan . Ya lo tengo. Mejoré la precisión. Ahora todos los campos aparecen correctamente.

Sólo me falta una cosa: No encontré el ID de Rosario ni el de José C Paz (en el fixture). ¿Faltan los datos o soy yo que no los puedo ubicar?

Edit: Estaba indexando las ciudades con el campo "pk" de fixture/ciudades.json, porque según entiendo así lo estabas haciendo. Pero encontré duplicados. Por ejemplo, da la casualidad que tanto "Mendoza, Mendoza, Argentina" como "Sinnar, Sudan", ambas tienen el mismo código pk: 2896.

Cómo hacemos con eso?

mgaitan commented 10 years ago

Puede ser, no es raro el dump de Geoname: figuran hay caserios rurales y no Rosario. Yo lo agregué: quedó con ID 5676

In [11]: City.objects.get(name='Rosario', region__name='Santa Fe').id
Out[11]: 5676

José C paz habrá que agregarlo igual.

Me mandás entonces los json que obtuviste?

muchas gracias!

2014-02-09 19:41 GMT-03:00 Carlos notifications@github.com:

Listo. Ya lo tengo. Mejoré la precisión. Ahora todos los campos aparecen correctamente. Sólo me falta una cosa: No encontré el ID de Rosario ni el de José C Paz (en el fixture). ¿Faltan los datos o soy yo que no los puedo ubicar?

— Reply to this email directly or view it on GitHubhttps://github.com/mgaitan/preciosa/issues/40#issuecomment-34589832 .

mgaitan.github.io textosyprextextos.com.ar

cttn commented 10 years ago

Listo, a josé C paz le puse 1111111, luego lo cambiás por el que corresponda. Ahora te hago pull request así te queda la última versión del scraper. Te lo envío los dumps de json tal como lo deja el scraper:

cttn commented 10 years ago

Hice pull, para que te quede la ultima versión del scraper. Si encontrás error en los json, avisame. Yo no encontré nada mal, por el momento.

Abrazo, Carlos

mgaitan commented 10 years ago

para referencia: los datos de las sucursales ya fueron integrados al fixture general valido para cargar en la bbdd de django python manage.py loaddata fixtures/sucursale.json