Чтобы wget
мог захватить целую кучу файлов, он должен иметь возможность найти их в указанном вами каталоге. Другими словами, когда вы переходите к https://www.ictsd.org/sites/default/files/review/
в веб-браузере, вы должны увидеть там ссылку на pdf. Если ссылку можно увидеть в вашем браузере, то ее также можно увидеть по wget
.
Когда я перемещаюсь по https://www.ictsd.org/sites/default/files/review/
в Firefox, происходит тайм-аут и появляется сообщение об ошибке:
The page isn’t redirecting properly
Поскольку при переходе к каталогу не отображается индекс доступных файлов, wget
не может увидеть то, что вы ожидаете увидеть.
Принимая во внимание, что когда я помещаю полный путь к конкретному PDF-файлу в адрес, Firefox находит его, что согласуется с поведением wget
.
Можно предположить, что владелец веб-сайта сделал это намеренно, чтобы предотвратить автоматическое извлечение всех файлов одновременно. Если, с другой стороны, вы считаете, что это просто ошибка веб-службы, и они сказали, что файлы, которые вам нужны, должны быть видны из содержащего каталога, вы можете связаться с ними и сообщить им о проблеме..
Или, если есть какой-то другой индекс, ссылающийся на все pdf-файлы, вы могли бы возможно использовать его.
Если вы заранее знаете имена конкретных PDF-файлов, которые вам нужны, вы можете поместить все ссылки в файл и wget
прочитать из него вот так:
wget -i links.txt
Так что я остановился на этом, и я счастлив:
#!/bin/bash
script_term()
{
echo $0 SIGTERM
}
wait_for_child()
{
term_child_pid=$!
wait ${term_child_pid} 2>/dev/null
trap - TERM INT
wait ${term_child_pid} 2>/dev/null
}
trap 'script_term' TERM INT
node index.js
wait_for_child
Он ожидает должным образом во всех случаях, которые меня интересуют, хотя он не ставит SIGTERM дочернему элементу, когда родительский bash имеет SIGTERM.