Code4PuertoRico / suministrospr-web-scraper

Web scraper for the old SuministrosPR.com website.
0 stars 0 forks source link

Municipio sale repetido #1

Closed froi closed 4 years ago

froi commented 4 years ago

En el data dump initial el municipio sale repetido en el archivo Calle Mercurio Ave Munoz Marin frente viejo cementerio municipal Urb Vistas de Monte Sol.json

[
  {
    "url": "https://suministrospr.com/sectores/calle-mercurio-ave-munoz-marin-frente-viejo-cementerio-municipal/",
    "municipio": "YaucoYauco",
    "title": "Calle Mercurio Ave Muñoz Marín frente viejo cementerio municipal Urb Vistas de Monte Sol",
    "content": "<div class=\"article-content\">\n<p>Lo más apremiante en estos momentos es:</p>\n<ul>\n<li>Casetas</li>\n<li>Toldos</li>\n<li>Sun block</li>\n<li>Matress</li>\n<li>Catres</li>\n<li>Matress inflables</li>\n</ul>\n<p>—</p>\n<p class=\"p1\"><span class=\"s1\">Solicitud de información. </span><span class=\"s1\">Favor indicar:</span></p>\n<ul>\n<li class=\"p1\"><span class=\"s1\">Cantidad de personas refugiadas</span></li>\n<li class=\"p1\">Cantidad de familias</li>\n<li class=\"p1\">Cantidad de niños</li>\n<li class=\"p1\">Cantidad adultos mayores</li>\n</ul>\n<br>\n</div>",
    "position": 1
  }
]

Archivo adjunto, as txt cause GitHub attachments:

Calle Mercurio Ave Munoz Marin frente viejo cementerio municipal Urb Vistas de Monte Sol.txt

albertico commented 4 years ago

El problema se debe a un bug en SuministrosPR.com que permite tener "chilld topics" bajo un municipio. Si se visita la página de Yauco se puede ver en la parte inferior un "child topic" llamado Yauco que contiene entradas adicionales (quizás duplicadas) para el dicho municipio. Dado que SuministrosPR.com solo permite añadir y modificar records, no es posible mover o modificar las entradas anidadas para arreglar el contenido previo al "web scraping".

Al mirar con detenimiento el código fuente de las páginas ("page source") se puede ver que en la sección de "breadcrumbs" se mantiene el "parent topic" del municipio seguido del "child topic". Como solución, se modificó el xpath para que registre como municipio la primera instancia del "breadcrumb":

sector_data[:municipio] = response.xpath("//div[@class='breadcrumbs pauple_helpie_breadcrumbs']/a[@class='mainpage-link'][starts-with(@href, 'https://suministrospr.com/municipios/')][position()=1]").text

La corrección fue sometida en el commit https://github.com/Code4PuertoRico/suministrospr-web-scraper/commit/323fb7225d07e51ed80f2014d595fef47af51aa8.