Agarrar texto de una página web
Pregunta
Me gustaría escribir un programa que encuentre los horarios de las paradas de autobús y que actualice mi página web personal en consecuencia.
Si tuviera que hacer esto manualmente, lo haría
- Visite www.calgarytransit.com
- Introduzca un número de parada. es decir, 9510
- Haz clic en el botón " siguiente bus "
Los resultados pueden parecerse a los siguientes:
10: 16p Ruta 154
10: 46p Ruta 154
11: 32p Ruta 154
Una vez que haya capturado el tiempo y las rutas, actualizaré mi página web en consecuencia.
No tengo idea de por dónde empezar. Sé perfectamente sobre la programación web, pero puedo escribir algo de C y Python. ¿Cuáles son algunos temas / bibliotecas que podría analizar?
Solución
Beautiful Soup es una biblioteca de Python diseñada para el análisis. páginas web. Entre él y urllib2 ( urllib.request en Python 3) debería poder averiguar lo que necesita.
Otros consejos
Lo que estás preguntando se llama "web scraping". Estoy seguro de que si buscas en Google, encontrarás algunas cosas, pero la idea central es que deseas abrir una conexión al sitio web, insuflar el HTML, analizarlo e identificar los fragmentos que deseas.
El Python Wiki tiene muchas cosas sobre esto.
Ya que escribe en C, puede consultar cURL ; En particular, eche un vistazo a libcurl. Es genial.
Puede usar la biblioteca de mecanizado que está disponible para Python http://wwwsearch.sourceforge.net/mechanize /
Puedes usar Perl para ayudarte a completar tu tarea.
use strict;
use LWP;
my $browser = LWP::UserAgent->new;
my $responce = $browser->get("http://google.com");
print $responce->content;
Su objeto de respuesta puede indicarle si tuvo éxito y también devolver el contenido de la página. También puede utilizar esta misma biblioteca para publicar en una página.
Aquí hay algo de documentación. http://metacpan.org/pod/LWP::UserAgent
Ese sitio no ofrece una API para que pueda obtener los datos adecuados que necesita. En ese caso, deberá analizar la página HTML real devuelta por, por ejemplo, una solicitud CURL.
Esto se llama raspado web , e incluso tiene su propio artículo de Wikipedia donde puedes encontrar más información.
Además, puede encontrar más detalles en este discusión SO .
Siempre que el diseño de la página web que intentas "raspar" no cambie regularmente, deberías poder analizar el html con cualquier lenguaje de programación moderno.