wget и ссылки в теле страничек

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
serge
майор
Сообщения: 2132
Зарегистрирован: 2006-07-30 15:34:14
Откуда: Саратов
Контактная информация:

Непрочитанное сообщение serge » 2006-09-18 9:51:23

Лично я писал shell скрипт который меняет ссылки в теле html. Готовых решений не нашел. Кста, тоже для http://www.lissyara.su. И вообще как-то Лисяра обещал выложить зеркало своего сайта, но пока жду :wink:

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
serge
майор
Сообщения: 2132
Зарегистрирован: 2006-07-30 15:34:14
Откуда: Саратов
Контактная информация:

Непрочитанное сообщение serge » 2006-09-18 9:53:35

Странно... чет мой ответ оказался выше вопроса??? :?

voodoo pr
проходил мимо

Непрочитанное сообщение voodoo pr » 2006-09-18 12:38:21

voodoopr писал(а): Сами по себе файлы в браузере смотрятся но ссылки остались как при скачивании с сервера т.е. со знаками вопросов и без расширения html.

Как лечить ?

Man смотрел, но ничего полезного не нашел.
И все таки маны полезная штука. Существует ключик -k. Выдержка из http://www.opennet.ru/man.shtml?topic=w ... &russian=0 .
-k
--convert-links
После завершения загрузки конвертировать ссылки в документе для просмотра в автономном режиме. Это касается не только видимых ссылок на другие документы, а ссылок на все внешние локальные файлы.
Каждая ссылка изменяется одним из двух способов:

*
Ссылки на файлы, загруженные Wget изменяются на соответствующие относительные ссылки.
Например: если загруженный файл /foo/doc.html, то ссылка на также загруженный файл /bar/img.gif будет выглядеть, как ../bar/img.gif. Этот способ работает, если есть видимое соотношение между папками одного и другого файла.

*
Ссылки на файлы, не загруженные Wget будут изменены на абсолютные адреса этих файлов на удаленном сервере.
Например: если загруженный файл /foo/doc.html содержит ссылку на /bar/img.gif (или на ../bar/img.gif), то ссылка в файле doc.html изменится на http://host/bar/img.gif.

Благодаря этому, возможен автономный просмотр сайта и файлов: если загружен файл, на который есть ссылка, то ссылка будет указывать на него, если нет - то ссылка будет указывать на его адрес в интернет (если такой существует). При конвертировании используются относительные ссылки, значит вы сможете переносить загруженный сайт в другую папку, не меняя его структуру.

Только после завершения загрузки Wget знает, какие файлы были загружены. Следовательно, при параметре -k конвертация произойдет только по завершении загрузки.
Работает ...

Все б хорошо, только последний абзац напрягает. А если размер сайта неизвестен !?
И когда wget решит что все закачал, проводит конвертацию ссылок.
sergee писал(а): Лично я писал shell скрипт который меняет ссылки в теле html. Готовых решений не нашел.
Было бы неплохо его увидеть :roll:

voodoo pr
проходил мимо

Непрочитанное сообщение voodoo pr » 2006-09-18 12:41:32

Тему однако колбасит, от себя сообщение не смог вставить ...

Аватара пользователя
serge
майор
Сообщения: 2132
Зарегистрирован: 2006-07-30 15:34:14
Откуда: Саратов
Контактная информация:

Непрочитанное сообщение serge » 2006-09-18 14:44:47

Скрипт выложу... как токо до дому доберусь. По поводу -к для wget.... не совсем нормально ссылки преобразовались, либо я не все понял.

Аватара пользователя
serge
майор
Сообщения: 2132
Зарегистрирован: 2006-07-30 15:34:14
Откуда: Саратов
Контактная информация:

Непрочитанное сообщение serge » 2006-09-18 21:41:50

Выкладываю скрипт правки ссылок в html доках и их имен из вида index.html_id=1167
к виду index_id=1167.html для сайта http://www.lissyara.su. Просьба строго не судить... уверен что скрипт корявый, но тем не менее рабочий.

Код: Выделить всё

#!/usr/local/bin/bash

/bin/ls -l | grep _ | awk '{print $9}' > tmp
n=1
cat tmp | while read str
do
  echo $n $str >> old
  let "n += 1"
done

cat tmp | sed 's/\./ /' | sed 's/_/ /' | awk '{print $1 "_" $3 "." $2}' > tmp
n=1
cat tmp | while read str
do
  echo $n $str >> new
  let "n += 1"
done

join old new > tmp

cat tmp | awk '{print "s/" $2 "/" $3 "/g"}' > rename

sed -f rename index.html > tmp
mv tmp index.html

cat old | awk '{print $2}' | while read str
do
  cat rename | sed 's/\// /g' | grep $str | awk '{print $3}' > tmp
  cat tmp | while read str2
  do
    sed -f rename $str > $str2
    rm $str
  done
done

rm tmp
rm old
rm new
rm rename
rm tmp2

Аватара пользователя
serge
майор
Сообщения: 2132
Зарегистрирован: 2006-07-30 15:34:14
Откуда: Саратов
Контактная информация:

Непрочитанное сообщение serge » 2006-09-18 21:50:37

Еще по поводу правки ссылок самим wget'ом. С ключем -k wget правил ссылку типа index.php?id=1 в index.php_id=1 (если память не изменяет...). Меня это не устроило, т.к. для автономного просмотра это подходит, но если выкладывать на web сервер (напр. apache), то ему нужны "правильные" расширения (html, php ...), иначе отображаются html теги страницы.

Аватара пользователя
voodoopr
проходил мимо
Сообщения: 1
Зарегистрирован: 2006-12-16 19:08:43

wget и ссылки в теле страничек

Непрочитанное сообщение voodoopr » 2006-12-16 19:34:04

Доброго времени суток!

Хочется зеркалировать сайты для собственных нужд, да ещё и смотреть их под виндой через самбу. С заменой запрещеных символов в именах файлов для винды вроде разобрался.
Но как его заставить сопоставлять ссылки в страничках новым именам файлов.
Вот чего добился (рассмотрим на примере lissyara.su :)):

# /usr/local/bin/wget -E -m --restrict-file-names='windows' --read-timeout=30 -nH --directory-prefix=/data0/ftp0/mirror/http.www.lissyara.su http://www.lissyara.su

чё получили:


# ls -l /data0/ftp0/mirror/http.www.lissyara.su
total 114
drwxr-xr-x 2 root wheel 512 Sep 16 22:06 images
-rw-r--r-- 1 root wheel 18859 Jun 21 07:14 index.html
-rw-r--r-- 1 root wheel 18625 Aug 22 2005 index.html@id=1003.html
-rw-r--r-- 1 root wheel 17507 Nov 21 2005 index.html@id=1004.html
-rw-r--r-- 1 root wheel 16441 Nov 21 2005 index.html@id=1005.html
-rw-r--r-- 1 root wheel 16117 Nov 21 2005 index.html@id=1006.html
-rw-r--r-- 1 root wheel 17077 Sep 15 2005 index.html@id=1020.html
-rw-r--r-- 1 root wheel 70 Mar 8 2006 robots.txt

Сами по себе файлы в браузере смотрятся но ссылки остались как при скачивании с сервера т.е. со знаками вопросов и без расширения html.

Как лечить ?

Man смотрел, но ничего полезного не нашел.