Pregunta

Lo siento muchachos, he estado haciendo un simulacro haciendo preguntas sobre cómo integrar los datos de Wikipedia en mi aplicación y, francamente, no creo que haya tenido ningún éxito por mi parte ya que he estado probando todas las ideas y un poco rendirse cuando leo un callejón sin salida u obstáculo. Trataré de explicar qué es exactamente lo que estoy tratando de hacer aquí.

Tengo un directorio simple de ubicaciones como ciudades y países. Mi aplicación es una aplicación simple basada en php basada en ajax con una función de búsqueda y navegación. Las personas se registran y se asocian con una ciudad y cuando un usuario navega por las ciudades, puede ver a las personas y las empresas en esa ciudad, es decir, cualquiera que sea parte de nuestro sistema.

Esa parte se configura fácilmente por sí sola y funciona bien. La cuestión es que los resultados de Mi búsqueda estarían en el formato, es decir, alguien busca digamos Beijing. Volvería en un cuadro de interfaz de tres pestañas:

  1. First Tab tendría un cuadro de información que contiene información de la ciudad de Beijing
  2. Seond sería una pestaña de país con un cuadro de información de la información del país de China
  3. La tercera pestaña tendría Listados de todos los contactos en Beijing.

El contenido de las dos primeras pestañas debe provenir de Wikipedia. Ahora estoy totalmente perdido con la que sería la mejor manera de hacerlo y, además, una vez que decida una metodología, ¿cómo lo hago y cómo hacerlo? que es bastante robusto.

Un par de ideas buenas y malas que he podido digerir hasta ahora son:

  1. Ejecute una solicitud curl directamente a wikipedia y analice los datos que se devuelven cada vez que se realiza una búsqueda. No es necesario mantener una copia local en este caso de los datos en wikipedia. El otro problema es que depende totalmente de los datos de una tercera ubicación remota y dudo que sea factible hacer una solicitud cada vez a wikipedia para recuperar información básica. Además, teniendo en cuenta que los datos en wikipedia deben analizarse en cada solicitud, eso será suficiente para las grandes cargas de servidores ... o estoy especulando aquí.

  2. Realice una descarga del volcado de wikipedia y consulte eso. Bueno, he descargado toda la base de datos, pero me llevará una eternidad importar todas las tablas del volcado xml. Además, considere el hecho de que solo quiero extraer una lista de países y ciudades y sus cuadros de información; mucha de la información en el basurero no me sirve.

  3. Crear mis propias tablas locales y crear un script cron [explicaré por qué trabajo cron aquí] que de alguna manera analizaría todas las páginas de países y ciudades en wikipedia y las convertiría a un formato que pueda usar en mis tablas . Sin embargo, honestamente hablando, no necesito toda la información en los cuadros de información, de hecho, si pudiera obtener el marcado básico de los cuadros de información tal como está, eso sería más que suficiente para mí. Me gusta:

Título del país | Texto sin formato del cuadro de información

Puedo extraer personalmente cosas como coordenadas y otros detalles si quiero.

Incluso intenté descargar conjuntos de datos de terceros de infochiumps y dbpedia, pero el conjunto de datos de infochimps está incompleto y no contenía toda la información que quería mostrar; además, con dbpedia no tengo ni idea de qué hacer con el archivo csv I descargado de cuadros de información y me temo que también podría no estar completo.

Pero eso es solo parte del problema aquí. Quiero una forma de mostrar la información de wikipedia: tendré todos los enlaces que apuntan a wikipedia, así como una buena información de wikipedia que se muestra correctamente en todas partes, PERO el problema es que necesito una forma de que periódicamente pueda actualizar la información que tengo de wikipedia, al menos, no tengo datos totalmente desactualizados. Como bien, digamos un sistema que puede verificar y si tenemos un nuevo país o una nueva ubicación, puede analizar la información y recuperarla de alguna manera. Estoy confiando en las categorías de países y ciudades en Wikipedia para esto aquí, pero, francamente, todas estas ideas están en papel, parcialmente codificadas y es un gran desastre.

Estoy programando en PHP y MySQL y mi fecha límite se acerca rápidamente, dada la situación y los requisitos anteriores, cuál es el mejor y más práctico método para seguir e implementar. Estoy totalmente abierto a ideas, ejemplos prácticos si alguien ha hecho algo similar, me encantaría saber: D

¿Fue útil?

Solución

Sugeriría lo siguiente

  • Consulta la ciudad desde wikipedia cuando se crea (la ciudad) en tu base de datos
  • Analiza los datos, almacena una copia local con la marca de tiempo de la última actualización
  • en el acceso, actualice los datos si es necesario. Puede mostrar el antiguo con una marca de agua que dice que tiene ... días de antigüedad y ahora se está actualizando. Luego cambie al recién adquirido cuando la actualización haya finalizado. Has dicho que estás usando AJAX, por lo que no será un problema

Minimizaría las consultas a wikipedia y su servicio no mostrará páginas vacías incluso cuando wikipedia no esté accesible.

Otros consejos

Un par de cosas en las que puedo pensar:

  1. Simplemente muestre los datos de wikipedia en un iframe en su sitio.

  2. Use Curl para obtener el html de wikipedia, luego use una hoja de estilo personalizada para darle estilo y / u ocultar las partes que no desea mostrar.

Intentar analizar el HTML y extraer las piezas que desea será un gran problema, y ??lo más probable es que tenga que ser personalizado para cada ciudad. Mejor hacer que algo simple funcione por ahora y luego volver y mejorarlo más tarde si decides que realmente lo necesitas.

¿Qué tal usar uno de los Servicios web de geocodificación de Wikipedia

Hay varios disponibles donde puede pasar, p. código postal y país con un breve resumen del artículo y un enlace al artículo de Wikipedia.

Si eso fuera suficiente.

Eche un vistazo a DBPedia, que contiene una buena extracción de datos de Wikipedia en formato CSV.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top