У Wget возникли проблемы с сохранением файлов, которые я хочу - исключить каталоги, похоже, не работает

538
baronmax

Я хочу загрузить все государственные расходы свыше 500 фунтов стерлингов Министерством энергетики и изменения климата. Это файлы .xls и .xlsx, генерируемые один раз в месяц. Они хранятся в таких местах, как это:

https: // www.gov.uk/government/uploads/system/uploads/attachment_data/file/209425/20130627_April_2013_PUS_.xls

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

https: // www.gov.uk/government/publications/departmental-spend-over-500-april-2013

который в свою очередь ссылается на страницу индекса, которая:

https://www.gov.uk/government/collections/departmental-spend-over-500

Эта команда работает:

wget -r --force-html -e robots=off -A xls,xlsx,"" -l 2 https://www.gov.uk/government/collections/departmental-spend-over-500 

но наряду с файлами .xls и .xlsx я получаю полный каталог сайта .gov.uk (с глубиной двух ссылок, с которого я начал), который загружает ~ 100 МБ текстовых / html-файлов, отличных от файлов .xls что немного чрезмерно Итак, мой вопрос:

Как я могу сделать wget только источник из каталогов выше или альтернативно исключить очевидные, которые я не хочу?

Я пробовал очевидные команды -I и -X, -D и т.д., но безуспешно. NB. Я должен был включить "", а также файлы xls в ключ -A, иначе он игнорировал бы html-файлы ссылок ...

Любой совет с благодарностью получен! Это на Mac между прочим.

1

1 ответ на вопрос

1
baronmax

Ha! Finally worked it out. In the include you have to include the full path for all of the directories - but NOT the url:

wget -r -A xls,xlsx,"" -l 2 -I /government/uploads/system/uploads/attachment_data/file/,/government/publications/,/government/collections/departmental-spend-over-500 https://www.gov.uk/government/collections/departmental-spend-over-500 

Not obvious - well not to me anyway...

(scroll right in the code box to see it all)

Edit: Actually better - I've split it out here:

wget -r -A xls,xlsx,"" -l 2 -I /government/uploads/system/uploads/attachment_data/file/, /government/publications/, /government/collections/departmental-spend-over-500 https://www.gov.uk/government/collections/departmental-spend-over-500 

Line 1: recursive, include xls & xlsx & files that don't have extensions (- in this case html files...) and do two levels from where specified in line 5

Lines 2-4: include these paths/directories from the top url (ie exclude everything else)

Line 5: where to start from

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