Решил тут на блоге оставить небольшую заметку о wget. Так сказать, чтобы самому не забыть, ну и может быть ещё кому пригодиться. Итак, не секрет, что многие используют wget не только для скачивания отдельного файла или файлов по списку, но и создания полной копии какого-либо сайта у себя на жёстком диске. Вот вы сделали такую копию сайта у себя на жёстком диске и тут с ужасом поняли, что все ссылки ведут исключительно на сайт в интернете, а не на локальную копию. Качать заново? Нет, это не наш метод. Можно написать небольшой скриптик, например на Python, который пробежится по всем скаченным html-файлам и преобразует адреса в ссылках на локальную копию. Но это относительно долго, хотя если есть свободное время и есть желание поупражняться в написании скриптов, то это будет то что надо. 🙂
Есть путь проще. Достаточно запустить wget со следующими опциями:
$ wget -r -k -nc http://some_site.com
Опция -r — рекурсивно скачать указанный сайт
Опция -k — конвертировать абсолютные ссылки в относительные локально. Преобразование будет выполнено только для ссылок на документы, которые действительно были выгружены, остальные ссылки будут оставлены как есть. И хочу отметить, это важно для понимания, что только по завершению выгрузки Wget сможет выяснить, что подлежит конвертации. По этой причине большинство работы будет выполняться по завершению процесса выгрузки.
Опция -nc — не модифицировать локальные файлы во время рекурсивной выборки иерархии документов. Если файлы имеют расширение «.html» или «.htm», то эти файлы будут считываться с локального диска и обрабатываться как будто они были получены с сервера.
Я специально написал опции раздельно, чтобы было понятно, но можно написать и так/p>
$ wget -rknc http://some_site.com
Как говориться, man wget. Через 10-20 секунд (зависит от количества скаченных файлов) вы получите в скаченных html-файлах ссылки на локальные файлы, а не на сайт в интернете.
а) «Немного» пишется слитно. 🙂
б) httrack в этом плане гораздо удобнее...
Спасибо, исправил.
Хм, посмотрю, хотя как-то wget'у привык.
wget классная штука. И под винду тоже есть.
однажды давно я выкачал сайт таким образом, так wget (вот же тупость!) преобразовал внешние адреса на _абсолютные_ (!!!) локальные, так что без скрипта всё равно не обошлось =)) Очень надеюсь, что это пофиксили 😉
Так для того и существуют специализированные решения, типа того же httrack.
Я пару раз с такой фигнёй столкнулся, сказал несколько нехороших слов и перестал пробовать бриться топором (в смысле — выкачивать сайты wget'ом)
Кстати.Не я один такой умный . 🙂
Заинтриговал... пошёл ставить и пробовать. 🙂