Бояндин Константин Юрьевич : другие произведения.

Авторам Самиздата - Сохраняем копию своего раздела со всеми комментариями

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:
Школа кожевенного мастерства: сумки, ремни своими руками
  • Аннотация:
    Сохраняем свой раздел сами - со всеми комментариями.

Предполагается, что человек, читающий это краткое руководство, достаточно хорошо дружен с Un*x, чтобы установить wget и perl (версии не ниже 5), необходимые для выполнения инструкций.

Вам потребуется небольшой скрипт на Perl для сохранения комментариев. Вы можете взять его из репозитория (выполнив следующую команду - предполагается, что у вас установлен Subversion, svn):

$ svn checkout http://sitools.googlecode.com/svn/trunk/ sitools

В каталоге sitools/getcomments будет файл getcomments.pl - то, что вам нужно. Это идеальный способ, потому что я планирую дорабатывать файл, и, выполнив в каталоге sittols, созданном, как указано выше, команду

$ svn update

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

Теперь, когда у вас есть wget и getcomments.pl (не забудьте дать последнему права на исполнение, например командой chmod +x getcomments.pl), можно приступать к копированию раздела и всех каталогов в нём. Команды ниже приведены в предположении, что getcomments.pl скопирован в каталог ~/bin (каталог bin в вашем домашнем каталоге), и что вы создали каталог ~/mirrors для хранения архивных копий раздела. Далее я также предполагаю, что имя раздела (адрес), который мы архивиурем, такое: http://zhurnal.lib.ru/p/pupkin_v_t/

1. Копируем все файлы из раздела:

$ cd ~/mirrors
$ wget -np -nv -r -c \
 --user-agent="Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.7) Fedora/3.0.7-1.fc9 Firefox/3.0.7" \
http://zhurnal.lib.ru/p/pupkin_v_t/

В качестве строки user-agent вы можете передать идентификатор любого другого браузера, главное - чтобы такой идентификатор был похож на что-то реальное.

2. Теперь переходим в каталог, где хранятся все файлы раздела и запускаем там getcomments.pl:

$ cd ~/mirrors/zhurnal.lib.ru/p/pupkin_v_t
$ ~/bin/getcomments.pl

Собственно, это всё. В вашем реальном случае подставляйте имя другого раздела и вызывайте getcomments.pl оттуда, откуда вам удобнее. Важно: сайт "Самиздата" часто перегружен и иногда может не справиться с сохранением той или иной страницы (обычно HTTP код 503). В этом случае решение простое: повторно запустите getcomments.pl - он скачает заново только отсутствующие файлы.

Правила именования комментариев таковы: если произведение хранится в файле
abc.shtml
то ленты комментариев к нему записываются в файлы с именами
abc.comment.A.C.html, где
A - номер архива (0, если это текущая лента, ещё не перешедшая в архивы)
C - номер страницы комментариев.

Если вы не владеете навыками и/или доступом к Un*x серверу, где возможно использовать упомянутое выше ПО, оставьте "заявку" на выполнение архивирования здесь или напишите мне письмом список разделов и - нужно ли сохранять их комментарии.

Нынешние ограничения скрипта сохранения комментариев и планы по его развитию:

Принимаются предложения и идеи по модернизации скрипта.



Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список

Кожевенное мастерство | Сайт "Художники" | Доска об'явлений "Книги"