从.txt文件中获取许多长网址

时间:2019-05-14 16:05:38

标签: wget

我要下载数百个10秒的mp4。这些文件的URL列在名为urls.txt的文件中,它们看起来像

http://v16.muscdn.com/thirty_two_alphanumeric_characters/5cf790de/video/tos/maliva/tos-maliva-v-0068/thirty_two_alphanumeric_characters/?rc=ang7cmg8OmZtaTMzZzczM0ApQHRAbzVHOjYzMzM0NTQ2ODMzMzQ1b0BoNXYpQGczdyl2KUBmamxmc3JneXcxcHpAKTY0ZHEzY2otcTZyb18tLWIxNnNzLW8jbyM2QS8wLS00LTQtLzYzMjYtOiNvIzphLW8jOmA6YC1vI2toXitiZmBjYmJeYDAvOg%3D%3D

,因此URL的总长度为329个字符。

当我尝试wget -i urls.txt时,我得到Error 414 URI Too Long

但是当我尝试通过将文件复制/粘贴到终端中来从文件中获取随机URL时,它可以正常工作并下载一个文件。

因此,然后我尝试使用以下bash脚本获取文件中的每个URL,但这给了我同样的错误。

#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "Text read from file: $line"
wget $line --user-agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Ubuntu Chromium/25.0.1364.160 Chrome/25.0.1364.160 Safari/537.22"
done < "urls.txt"

我还尝试通过在文件上执行dos2unix来更改行尾字符,但这没什么区别。

我还能尝试什么?

1 个答案:

答案 0 :(得分:0)

如果您所有的URL已经在一个文件中,为什么不简单地将wget调用为:

$ wget  --user-agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Ubuntu Chromium/25.0.1364.160 Chrome/25.0.1364.160 Safari/537.22" -i urls.txt