wget 带有 google 重定向的链接

wget 带有 google 重定向的链接

有一个页面充满了下载,但都使用https://www.google.com/url?q=http://www.$$$/*.pdf&...

我可以直接使用 http://www.$$$/*.pdf 下载,但有 50 多个文件。有什么办法可以避免这种情况吗?wget 可以做到吗?我试过了,但它只能下载链接,因为它在www.google.com/

任何帮助,将不胜感激。

答案1

您可以使用grep -P来过滤掉真正的链接,然后将其作为输入文件(-i)添加到wget使用进程替换中:

wget -i <(grep -Po '[?&]q=\K[^&]*' links)

不过,我猜测嵌入的 URL 是经过 URL 编码的,因此需要一个步骤来取消引用:

urldecode() { [ $# -eq 0 ] && str=$(</dev/stdin) || str="$@";  : "${str//+/ }"; echo -e "${_//%/\\x}"; }
wget -i <(grep -Po '[?&]q=\K[^&]*' links | urldecode)

或者使用python's urllib.parse.unquote

wget -i <(python -c '
import re
from urllib.parse import unquote
with open("links") as f:
  for line in f.readlines():
    url=re.search("([&?]q=)([^&]*)", line)
    print(unquote(url.group(2)))
')

(当然您也可以用它python来替换wget零件......)

相关内容