Para casos simples de download do conteúdo de uma página, use curl ou wget . Ambos são ferramentas de linha de comando projetadas para baixar arquivos via HTTP e têm muitas opções. No seu caso, você provavelmente precisará tornar essas ferramentas mais parecidas com um navegador; A resposta de lutzky e a resposta de penguin359 mencionam algumas opções de curl e wget que são úteis nesse sentido.
Às vezes, quando você precisa fazer login , é muito mais fácil primeiro fazer login manualmente em um navegador da Web e depois exportar os cookies do navegador da Web (extensões como allcookies ou Export Cookies para Firefox podem ajudar).
Se você precisar analisar o conteúdo de algumas páginas ou publicar formulários , poderá precisar de ferramentas mais sofisticadas do que curl e wget. Algumas boas ferramentas são Perl com LWP
(libwww) e HTML::TreeBuilder
(HTML-Tree) ou Python com bibliotecas padrão (especialmente httplib
ehtmllib
).
Para interações mais complexas com um site, a referência é WWW :: Mechanize do Perl . Esta biblioteca Perl define funções de alto nível para interagir com um site como um navegador, incluindo POSTing, formulários, cookies, mas não Javascript. Se o Perl não é sua xícara de chá, esta biblioteca possui imitações com recursos semelhantes em outros idiomas, como Python mechanize e Ruby Mechanize .
Finalmente, quando você precisa de Javascript , a abordagem usual é usar um navegador da Web que é conduzido por uma estrutura de automação de navegador. Selênio e Watir são escolhas populares; veja também Existem outras ferramentas boas além do SeleniumRC que podem buscar páginas da Web, incluindo conteúdo pós-pintado por JavaScript?