¿Qué debo leer para desarrollar un rastreador web que raspe un subconjunto de Internet y me brinde los enlaces de los sitios web que son tiendas de abarrotes?

Intenta obtener acceso a los materiales del curso introductorio de David Evans (de U Virginia y Udacity). Muestra cómo construir un motor de búsqueda, incluido un rastreador [Udacity: Introducción a la informática y curso de programación]. Por supuesto, esto es bastante rudimentario en sofisticación, por lo que puede no ser suficiente para sus necesidades. Pero parece que conoce la parte de IR y necesita principalmente ayuda con la parte de programación, por lo que esto puede ayudarlo a despegar.

Tenga cuidado antes de ejecutar un rastreador: si es indiscriminado, podría estar violando inadvertidamente varios términos de servicio y podría ser bloqueado, lo que, dependiendo de dónde y cómo lo ejecute, podría terminar bloqueando a muchas más personas que usted (por ejemplo, si un estudiante lo ejecutó desde un clúster departamental, se podría bloquear todo su departamento; si lo ejecuta desde un servicio de alojamiento en la nube, podría ser expulsado del servicio).

Finalmente, sea un ciudadano responsable y respete el protocolo robots.txt (estándar de exclusión de robots).

Existen marcos maduros de raspado web de código abierto que puede usar para raspar los datos [1]. También hay soluciones de rastreo web maduras de código abierto. Muchos de ellos hacen ambas cosas. Puedes estudiarlos para aprender más sobre cómo funciona esto.

Puede crear rápidamente un raspador web para páginas dinámicas utilizando PhantomJS [2]. El rastreador identificaría las páginas de interés, incluso si no puede renderizarlas, y Phantom las renderizaría y eliminaría. Como se trata de un navegador completo, no tendría que escribir ningún código especial para representarlo y analizarlo, excepto para document.getElementById o document.getElementsByTagName o document.getElementsByClassName o jQuery.

No creo que se deba rastrear la información que desea. Generaría estos datos al eliminar Yelp [3] ya que ya lo tiene. Hacerlo sin ser bloqueado es un desafío divertido para ti.

La mayoría de las tiendas que tienen páginas activas de Facebook simplemente se vincularán a ellas desde sus sitios. Detectar eso es muy fácil. El número de tiendas que tienen una página de Facebook activa pero no un sitio web genérico es pequeño.


[1] ¿Cuál es el mejor rastreador web de código abierto que es muy escalable y rápido? ¿Y por qué?
[2] Ejemplos | PhantomJS
[3] ariya / phantomjs

Bueno, te sugiero que uses Octoparse, la herramienta de raspado web para raspar todos los enlaces que quieras de las tiendas de comestibles. Puede seguir el tutorial Página web Lista y detalles – Modo Asistente para aprender cómo extraer la información de los resultados de búsqueda y las páginas de detalles (incluidos los enlaces en los resultados de búsqueda).

Si los datos que desea extraer son demasiado grandes, le sugiero que use la edición estándar o la edición profesional, que podría proporcionarle los servicios en la nube y el acceso a la API para mejorar la velocidad de extracción de datos y obtener automáticamente los datos en tiempo real.

¿Por qué no usar una API de Google, raspar sus resultados de búsqueda y luego raspar los resultados de la página? Soy un adicto a Perl, así que eso es lo que usaría. Python es probablemente igualmente capaz para la tarea, pero no estoy tan familiarizado con ella. Perl es ideal para el procesamiento de texto con expresiones regulares, y tiene módulos para conexiones de API de búsqueda de Google. Perl también es un buen lenguaje para crear rastreadores web personalizados, pero no veo el punto cuando Google y otros directorios como Yelp ya han hecho el rastreo y la indexación por usted.