« Return to Thread: Python como wget

Re: Python como wget

by Henrique Baggio :: Rate this Message:

Reply to Author | View in Thread

2009/2/2 Luciano Ramalho <ramalho@...>

>
> 2009/2/2 Henrique Baggio <hnrqbaggio@...>:
>
> > Procurei um pouco na net sobre alternativas de fazer esse download em
> > python, mas não consegui encontrar muita coisa útil. Tentei usar o módulo
> > urllib, mas não consegui fazê-lo entender a url como um diretório, de forma
> > a listar os arquivos dentro dele.
>
> Oi, Henrique, não existe como "entender a url como um diretório" no
> protocolo HTTP. Existe no FTP, mas no HTTP não existe um comando que
> você possa enviar para o servidor dizer tudo o que tem num diretório.

Não sabia disso Luciano. Realmente, ainda sou novato e nunca tive a
chance de estudar esses protocolos. Achava que o fato de a URL ser um
diretório no servidor bastaria pra eu poder listar os arquivo nele
remotamente. Inocência minha =P

>
> > Apenas consegui baixar o conteúdo da
> > página html usada pelo servidor para me mostrar a lista de arquivos.
>
> Sim, se você enviar um GET para uma determinada URL, o servidor pode
> te devolver uma listagem de arquivos. Mas isso depende de como o
> servidor foi configurado. Não existe nenhuma obrigação, segundo o
> protocolo HTTP, de que isso seja desta maneira.
>
> > Claro que eu poderia fazer uma gambiarra e procurar os links dos arquivos
> > pelo conteúdo do html
>
> É assim exatamente que funciona o Wget recursivo.

Também não sabia disso, heheh. Pra mim ele se comunicava de outra maneira.

> > , mas gostaria de saber se existe alguma outra
> > alternativa, se a linguagem me permite algo mais alto nível. =]
>
> > Alguma idéia?
> >
> > [1] http://linux.die.net/man/1/wget
>
> Procure o wget para Windows (já te deram o link), ou faça um script
> combinando urllib com alguma biblioteca mencionada neste excelente
> post do über-guru Ian Bicking:
>
> http://blog.ianbicking.org/2008/03/30/python-html-parser-performance/

Dessa vez eu usei o wget for winodows mesmo, pq tinha um pouco de
pressa. Mas como disse, vou dar uma estudada mais a fundo no assunto.

>
> Se for criar sua própria solução, talvez seja legal dar uma lida na
> especificação do HTTP, para sacar o que é possível esperar do
> protocolo. A parte que fala dos métodos (comandos) fica aqui:
>
> http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
>
> Boa sorte!

Obrigado pelos links, vou dar uma lida neles.  =]

--
Henrique Baggio

 « Return to Thread: Python como wget