Para casos simples de download do conteúdo de uma página, use curl ou wget . Ambas são ferramentas de linha de comando projetadas para baixar arquivos via HTTP e ter muitas opções. No seu caso, você provavelmente precisará tornar essas ferramentas mais parecidas com um navegador; a resposta de lutzky e a resposta do penguin359 menciona algumas opções de curl e wget que são úteis nesse aspecto.
Às vezes, quando você precisa efetuar login , é muito mais fácil primeiro fazer login manualmente em um navegador da web e, em seguida, exportar os cookies do navegador da web (extensões < href="https://addons.mozilla.org/pt-BR/firefox/addon/allcookies/"> allcookies ou Exportar Cookies para o Firefox pode ajudar).
Se você precisar analisar o conteúdo de algumas páginas ou postar formulários , talvez seja necessário usar 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
e htmllib
).
Para mais interações complexas com um site, a referência é WWW: : Mecanizar . Esta biblioteca Perl define funções de alto nível para interagir com um site como um navegador da Web, incluindo POST, formulários, cookies, mas não Javascript. Se o Perl não for sua xícara de chá, essa biblioteca tem imitações com recursos semelhantes em outros idiomas, como Mecanismo do Python e Mecanismo Ruby .
Por fim, quando você precisa do Javascript , a abordagem usual é usar um navegador da Web orientado por uma estrutura de automação do navegador. Selênio e Watir são populares escolhas; veja também Existem Quaisquer boas ferramentas além do SeleniumRC que podem buscar páginas da Web, incluindo conteúdo pós-pintado por JavaScript?