Выход из строк запроса с wget - зеркало

Я использую wget --mirror --html-extension --convert-links для зеркального отражения сайта но я заканчиваю с большим количеством имен файлов в формате post.php?id=#.html. Когда я пытаюсь просмотреть их в браузере, он перестал работать, потому что браузер игнорирует строку запроса при загрузке файла. Есть ли любой способ заменить ? символ в именах файлов с чем-то еще?


Ответ --restrict-file-names=windows работавший правильно. В сочетании с флагами --convert-links и --adjust-extension/-E (раньше названный --html-extension, который также работает, но удерживается от использования), это производит зеркало, которое ведет себя как ожидалось.

wget  --mirror --adjust-extension --convert-links --restrict-file-names=windows http://www.example
15
задан 17.03.2011, 07:57

3 ответа

Посмотрите --restrict-file-names опция. В то время как не точно предназначенный для этой конкретной цели, --restrict-file-names=windows будет, вероятно, способствовать Вам:

- restrict-file-names=modes

Изменение, каких символов, найденных в удаленных URL, нужно оставить во время поколения локальных имен файлов. [...]

Когда "окна" даны, Wget выходит из символов \, |,/:?, ", *, <>, и управляющие символы в диапазонах 0 - 31 и 128 - 159. В дополнение к этому Wget в режиме Windows использует + вместо: разделить хост и порт в локальных именах файлов и использование вместо? разделить часть запроса имени файла от остальных. Поэтому URL, который был бы сохранен как www.xemacs.org:4300/search.pl? input=blah в режиме Unix был бы сохранен как www.xemacs.org+4300/search.pl@input=blah в режиме Windows.

16
ответ дан 07.12.2019, 11:08

Ваш браузер просмотрит его прекрасный при использовании URL как

file:///tmp/example.com/post.php%3Fid=1.html

вместо

file:///tmp/example.com/post.php?id=1.html

Примечание: если бы Вы испытываете затруднения из-за внутренних ссылок из загруженных файлов, это было бы, потому что Вы завершили wget, прежде чем это было сделано с загрузкой. Так как Вы указали - преобразовывать-ссылки, и - расширение HTML (только применяется, когда им дают), wget обычно исправлял бы ссылки для использования %3F вместо?; однако, это делает это в конце, после того, как это закончило загружать; если бы это было прервано, то это не будет исправлять ни одной из ссылок, и Вас оставляют в этом затруднительном положении. Конечно, можно всегда писать сценарий, чтобы пройти и исправить ссылки, но...

2
ответ дан 07.12.2019, 11:08

wget не имеет опции изменить сохраненное имя. То, что необходимо будет, вероятно, сделать, создают сценарий, чтобы пройти и заменить? с _ или что-то подобное. Один только Wget не может сделать этого.

-2
ответ дан 07.12.2019, 11:08

Теги

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