Как я могу использовать wget для создания списка URL-адресов из index.html?

Таким образом, wget имеет возможность рекурсивно загружать файлы, однако он делает это по одному файлу за раз.

Я хотел бы передать URL-адрес каталога, и для каждого URL-адреса он встречается в рекурсии, чтобы он не запускал процесс загрузки.

Один из способов, который я собирался сделать, – это как-то использовать wget для распечатки URL-адресов, с которыми он сталкивается, и затем загружать эти URL-адреса в отдельные экземпляры wget (через wget URL_1 & , wget URL_2 & т. Д.).

Есть идеи?

3 Solutions collect form web for “Как я могу использовать wget для создания списка URL-адресов из index.html?”

Используйте grep с ним:

 wget url -rqO - | grep -oE '[az]+://[^[:space:]"]+' 

Один из способов решения этой проблемы – собрать все ссылки в текстовом файле и сделать следующее: –

 while read line; do echo "Downloading ${line}" wget $line & done < $1 

Сохраните этот файл как script.sh и сделайте его исполняемым и запустите его как

 $ ./script.sh 

Лучший способ решить эту проблему надолго – переписать wget как неотъемлемо параллельную.

В моем случае он работал путем объединения двух wget s:

 $ wget -O - -o /dev/null http://site.to.get.urls.from | grep -o 'some_regex' | wget -i - 

Первый wget создаст список URL-адресов с файлами, который используется в качестве входного «файла» для второго wget .

Обратите внимание, что это упрощенная версия, чтобы показать вам технику. Труба между командой grep и второй командой wget на самом деле может быть объединена с другими командами, такими как sed , awk или cut (особенно если исходный код HTML немного сложнее обычного, и поэтому синтаксический анализ сложнее).

Это гласит : всегда убедитесь, что сначала вызываете внутренний wget автономно, чтобы проверить на стандартном уровне, что ваши регулярные выражения () работают корректно.

Interesting Posts
Linux и Unix - лучшая ОС в мире.