Зробіть wget конвертувати HTML-посилання у відносні після завантаження, якщо -k не було вказано


32

-kВаріант (або --convert-link) перетворює посилання на веб - сторінках , щоб відносне після завершення завантаження, наприклад, сторінка людина говорить:

Після завершення завантаження конвертуйте посилання в документі, щоб зробити їх придатними для місцевого перегляду. Це впливає не лише на видимі гіперпосилання, але і на будь-яку частину документа, яка посилається на зовнішній вміст, наприклад вбудовані зображення, посилання на таблиці стилів, гіперпосилання на вміст, що не містить HTML тощо.

Отже, якщо я не вказав -k, чи можу я запустити wgetще раз після завантаження та виправити це, і якщо так, то яка б була відповідна команда? Думаю, wget -c [previous options used] [url]запустіть його в тій же робочій директорії, в яку завантажено файл.


1
Ви, безумовно, можете після обробки завантажувати файли, але я не знаю, чи wgetце робити . Ваша ідея спробувати її -c- хороша. час експериментувати!
квакш-кіхот

У вас є корисна програма для перетворення посилань будь-яким випадком? Працює під Windows, до речі ...
Натаніель

perl... жодного заздалегідь написаного сценарію, але якби я хотів зробити самостійне рішення, саме цим я б скористався
шарпнув кіхот

Добре, дякую. Не встановлюйте Perl, і це займе багато часу, щоб схопити його. На щастя, я знайшов, як змусити wget робити роботу. Я опублікував відповідь.
Натаніел

btw, ActivePerl знаходиться як порт perl для Windows; це досить невеликий інсталятор, і я впевнений, що з ним працює більшість модулів CPAN. activestate.com/activeperl
шарлатан

Відповіді:


23

Так, ви можете змусити wgetце зробити. Я б сказав, використовуйте wget -nc -k [previous options] [previous url]. -ncє не-клобером. На чоловіковій сторінці:

Коли −ncце визначено, це поведінка придушується, і Wget відмовиться завантажувати новіші копії файлів.

І -kваріант робить посилання перетворення. Отже, wget починає копати на віддаленому сервері, бачить усі наявні у вас файли, відмовляється перезавантажувати їх, а потім редагує посилання HTML до відносних, коли це буде зроблено. Приємно.


3
Ні, це для мене не працює. Він завантажує перший файл (наприклад, index.html), дивіться, що вже завантажений стоп. Якщо ви хочете, щоб wget працював рекурсивно, вам слід скористатися опцією timetamp (-K). Тому wget повинен попросити всі заголовки збігатися, якщо файл новіший чи ні.

12
GNU Wget 1.13.3, побудований на darwin11.1.0. Спроба використовувати обидва варіанти одночасно даєBoth --no-clobber and --convert-links were specified,only --convert-links will be used.
Людовик Куті

2
ваше питання не задавали без -k?
барлоп

8
Ср. @ Коментар LudovicKuty - на wget 1.13 --no-clobberне працює --convert-links. Докладні відомості див. У розділі http://savannah.gnu.org/bugs/?31781 .
Девід Молес

1
У разі , якщо хто -то піклується, я побудував Docker зображення для Wget 1.12: hub.docker.com/r/berezovskyi/wget1.12
Березовський
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.