Craigslist: el JSON-LD no trae ID y para cruzar datos hay que improvisar con el título
Un desarrollador documenta que las listas de anuncios de Craigslist no incluyen identificador en su JSON-LD, forzando a unir por título con una cola y midiendo un 89% de éxito.

Un desarrollador que mantiene un scraper para anuncios de Craigslist ha publicado un análisis técnico con dos hallazgos: el JSON-LD de las páginas de búsqueda no incluye identificador compartido con el HTML, y el único campo fiable para unir ambas copias es el título, que además se repite. Su solución pasa por una cola FIFO por título, con la que recupera 290 de 325 anuncios (89%) en una página capturada de 298 elementos.
Un cambio en el esquema de URLs
El autor también detecta que Craigslist ha cambiado su esquema de URLs: ya no usa IDs numéricos enteros en el segmento final, sino cadenas alfanuméricas opacas (ilustra con 39wYA6wpdyRS7ynm63QsKf). Cualquier expresión regular escrita para los antiguos IDs se rompe en todas las listas nuevas. La recomendación es validar contra páginas reales actualizadas, no contra la documentación ni la memoria.
Robots.txt como límite estricto
El scraper comprueba cada URL de detalle contra robots.txt antes de hacer ninguna petición, y rechaza rutas como /reply/ o /fb/. El campo reply_url se devuelve como dato, pero no se sigue nunca. El autor lo explica como un límite de alcance, no una funcionalidad esperada.
Cómo generalizar
El caso de Craigslist ilustra que el JSON-LD suele contener más datos que el DOM visible, pero no siempre están conectados mediante una clave compartida. Asumir que la posición o el orden en el array se mantienen más allá del primer bloque de resultados es arriesgado; conviene comprobarlo con una muestra amplia y planificar la degradación para los casos de unión incompleta, devolviendo la fila con campos nulos en lugar de descartarla.
El autor tiene el scraper publicado en Apify como actor Craigslist Listings Scraper, junto con otras herramientas en su perfil de Apify. No se sabe cuándo Craigslist adoptó este comportamiento ni si lo planea cambiar; la observación está hecha sobre páginas capturadas recientemente y el porcentaje de acierto puede variar según la categoría y la página.

