Agarrando o texto de uma página web
Pergunta
Eu gostaria de escrever um programa que irá encontrar tempos de parada de ônibus e atualizar minha página pessoal em conformidade.
Se eu fosse fazer isso manualmente eu faria
- Visite www.calgarytransit.com
- Introduza um número de stop. ie) 9510
- Clique no botão "próximo ônibus"
Os resultados podem parecer com o seguinte:
10: 16p Route 154
10: 46p Route 154
11: 32p Route 154
Uma vez eu peguei o tempo e rotas então eu vou atualizar meu site em conformidade.
Eu não tenho idéia por onde começar. Eu sei diddly nada sobre programação web, mas pode escrever algum C e Python. Quais são alguns dos tópicos / bibliotecas que eu poderia olhar para?
Solução
Beautiful Soup é uma biblioteca Python projetada para análise paginas web. Entre ele e urllib2 ( urllib.request em Python 3) você deve ser capaz de descobrir o que você precisa.
Outras dicas
O que você está perguntando sobre é chamado de "raspagem web." Tenho certeza que se você google em torno de você encontrará algumas coisas, mas a noção central é que você deseja abrir uma conexão com o site, Slurp no HTML, analisá-lo e identificar os pedaços que você quer.
O Python Wiki tem um bom monte de coisas sobre isso.
Uma vez que você escreve em C, você pode querer verificar para fora cURL ; em particular, dar uma olhada em libcurl. É ótimo.
Você pode usar a biblioteca mecanizar que está disponível para Python http://wwwsearch.sourceforge.net/mechanize /
Você pode usar Perl para ajudar a completar a sua tarefa.
use strict;
use LWP;
my $browser = LWP::UserAgent->new;
my $responce = $browser->get("http://google.com");
print $responce->content;
Seu objeto responce pode dizer se suceeded, bem como devolver o conteúdo do page.You também pode usar essa mesma biblioteca de post para uma página.
Aqui está alguma documentação. http://metacpan.org/pod/LWP::UserAgent
Esse site não oferece uma API para que você seja capaz de obter os dados apropriados que você precisa. Nesse caso, você vai precisar para analisar a página HTML real retornado por, por exemplo, um pedido CURL.
Isso é chamado Web raspagem , e ainda tem o seu próprio Wikipedia onde você pode encontrar mais informações.
Além disso, você pode encontrar mais detalhes neste SO discussão .
Enquanto o layout da página web a sua tentativa de 'raspar' does not regularmente mudança, você deve ser capaz de analisar o html com qualquer linguagem de programação moderna.