Problemas de imagens do wget api_key

0

Temos um fornecedor que nos envia xml feeds de novos itens com o caminho e o nome da imagem apropriados. Eu criei um script que tira o caminho do endereço da web para a imagem, mas se eu tentar obtê-los com o wget, recebo um erro de protocolo. Eu tentei usar wget -i list.txt . Se eu usar outras ferramentas semelhantes, não tenho um problema. O que estaria causando o problema e o que é melhor sugerido?

    
por DᴀʀᴛʜVᴀᴅᴇʀ 04.01.2013 / 19:19

3 respostas

1

acho que isso funcionará

grep -oP "http:\//[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\+&%\$#\=~])*.jpg" inputfile  | xargs -n1 wget

ou se você tem lista, então você pode usar

cat list.txt | xargs -n1 wget 
    
por 04.01.2013 / 19:25
0

Sem ver uma amostra da entrada e pelo menos o núcleo do seu script, posso apenas especular que as URLs estão sendo interferidas pelo espaço maléfico yetis. Eles são notórios por esse comportamento irresponsável - sua única esperança é chamar o suporte técnico Area 51.

Ou talvez forneça amostra e script aqui. Uma ideia maluca, mas pode ajudar. Anonimiza ou ofusca-os se necessário, mas sem atrapalhar a estrutura do arquivo XML.

Vou adivinhar que você está usando um regexp simples e ressaltar que, como regra geral, "analisar" XML com regexps não é uma boa ideia - é frágil e facilmente confundido por uma entrada válida mas inesperada. .utilize uma biblioteca ou função de análise xml ou até mesmo uma ferramenta como xml2 para extrair as URLs dos arquivos XML .

Note também que, como sugerido por Deer Hunter acima, se as URLs contiverem espaços ou caracteres de pontuação com significado especial para o shell (por exemplo, & , ? , * e muitos outros), você precisará para citar ou escapar do URL antes de usá-lo em uma linha de comando do wget. Como um exemplo muito simples, use wget "$URL" em vez de apenas wget $URL - observe as aspas duplas em torno da variável $ URL.

    
por 06.01.2013 / 11:13
0

depois de muita revisão, descobrimos que a rede era um problema. O script wget funcionaria para outros sites e os links baixados com ferramentas baseadas em janelas, como o jdownloader. Por alguma razão, o lado baseado em Linux não acessaria o servidor web do NT do fornecedor. Nós instalamos o winbind, mas o exame da rede está em ordem.

    
por 10.01.2013 / 16:14

Tags