Como baixar link com unicode usando wget?

11

Às vezes, um link tem caracteres unicode, como link

Se você apontar seu navegador para ele, ele solicitará que você faça o download do arquivo corretamente como файл.zip. Mas se você tentar fazer isso com wget , o arquivo vem com uma mistura de?, Codificação por cento (como% D0% BB) e a string (invalid encoding) após o nome do arquivo.

Quais parâmetros eu posso adicionar ao wget, ou qualquer outro truque de linha de comando, para que ele se comporte como Chrome e Firefox e salve o arquivo exatamente como especificado no link renderizado - nesse caso, como файл.zip?

A solução deve funcionar sem que seja necessário escrevê-la explicitamente no comando, portanto, um wget -O файл.zip http://www.example.com/файл.zip explícito não é uma boa solução.

Sei que, assim que você executar wget http://www.example.com/файл.zip , ele tentará recuperar link , isto é, converte o link para codificação percentual, o que pode ser o motivo pelo qual ele salva ele não renderiza o nome do arquivo" propriamente ".

Postei uma pergunta relacionada aqui , cuja resposta pode ou não ser de ajuda para este.

    
por Strapakowsky 29.12.2012 / 05:22

2 respostas

2

Você pode usar o curl, como segue

curl -O http://www.example.com/файл.zip

Ele será salvo em файл.zip.

    
por John Siu 29.12.2012 / 06:09
20

para wget você pode usar

wget link /файл.zip - restringir-arquivo-nomes = nocontrol

se o seu sistema puder manipular corretamente a codificação utf-8 / other.

finalmente, se você ainda tiver os símbolos% restantes no arquivo baixado, use o urllib.unquote (nome do arquivo)

do python     
por Balaji Purushotham 01.02.2013 / 07:42

Tags