wget a link with google redirect

Есть страница, полная загрузок, но все они используют https: //www.google.com/url? Q = http: // www. $$$ / *. Pdf & ... .

Я могу скачать напрямую http: //www.$$$/*.pdf, но есть более 50 файлов. Как бы то ни было, чтобы этого избежать? Wget может это сделать? Я пробовал, но он загружает только ссылки, поскольку они находятся на www.google.com/

. Любая помощь будет принята с благодарностью.

0
задан 21 June 2021 в 08:05

1 ответ

Вы можете использовать grep -P для фильтрации реальных ссылок и либо добавить в качестве входного файла ( -i ) в wget , используя подстановку процесса:

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

Тем не менее, я предполагаю, что встроенный URL-адрес закодирован, тогда вам понадобится шаг для отмены цитирования:

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

или python 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 также ...)

0
ответ дан 28 July 2021 в 11:26

Другие вопросы по тегам:

Похожие вопросы: