Usando o wget ou outro comando, como fazer o download agora, mas converter links mais tarde?

4

A opção útil wget --convert-links ou wget -k faz com que "links em HTML ou CSS baixados apontem para arquivos locais". Faz dois passes:

  • Passo 1: faça download de arquivos.
  • Passo 2: converta links.

Eu quero passar 1 agora e passar 2 depois. Eu quero invocar os dois passes separadamente. Eu quero que wget pare após o passe 1, deixe-me fazer algumas coisas, e só então continue com o passo 2. Eu só quero converter links como um comando separado, se o comando é wget ou outra coisa. Como, por favor?

E se wget não fizer isso, então haverá um módulo Perl, um módulo Python ou algo semelhante?

(Para referência: esta resposta responde parcialmente à minha pergunta. Esta questão é semelhante, mas sua resposta parece falhar. De qualquer forma, nenhuma delas fornece algo que funcione até onde eu saiba.

    
por thb 05.12.2016 / 11:25

1 resposta

0

Parece que essa pergunta foi realmente respondida nesta outra pergunta , mas está desatualizada, então aqui está a atual solução:

Envolve a transmissão do seu diretório local após o seu "Passe 1" para wget , fazendo com que ele acredite que é um website. Isso é feito facilmente com um pequeno código Python invocando SimpleHTTPRequestHandler e, em seguida, você retorna wget do host local com as opções apropriadas.

Algo estas linhas pode funcionar:

import http.server
import socketserver
import os

PORT = 8000 # optional, can be changed

web_dir = os.path.join(os.path.dirname(path), 'web') # change path to your local files here if needed, like '/home' or 'C:\tmp' on Windows
os.chdir(web_dir)

Handler = http.server.SimpleHTTPRequestHandler
httpd = socketserver.TCPServer(("", PORT), Handler)
print("serving at port", PORT)
httpd.serve_forever()

seu wget pode ser chamado em http://localhost:8000

    
por 23.07.2018 / 13:46

Tags