Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Лучший софт для чтения конференции в офф-лайне

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго всем времени суток!
 
У меня есть менее удобная, но зато и менее траффикоёмкая идея по закачке форумов.
У многих форумов есть пункт "Версия для печати", позволяющий просматривать сразу все посты топика, а не открывать их постранично. Ссылки на него выглядят стандартно, например, для этого форума:
http://forum.ru-board.com/misc.cgi?action=printtopic&forum=5&topic=N
где N - номер топика.
Поэтому оказывается достаточно загрузить все вэб-страницы с таким адресом, где N изменяется в определённом диапазоне. Для этого вначале надо создать текстовый файл с перечнем всех адресов (их там будут тысячи), а затем воспользоваться какой-нибудь программой, которая последовательно их все оттуда загрузит, например бесплатной консольной утилитой WGET ( http://forum.ru-board.com/topic.cgi?forum=5&topic=10066#8 ), у которой есть такая опция.  
 
Примеры:
-Скачивание только HTML-файла:
wget "http://forum.ru-board.com/misc.cgi?action=printtopic&forum=5&topic=0814" -E  
-Скачивание вместе со всеми картинками:
wget "http://forum.ru-board.com/misc.cgi?action=printtopic&forum=5&topic=0814"  -p -H -k -E -U "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 4.0)" -e robots=off -nd -nc

 
Все файлы будут сохранены в текущей директории командной строки.
Имеет также смысл запретить загрузку содержимого, ведущего на сайты типа top.list.ru и т.п. при закачке вместе с картинками.  Для этого форума параметры будут такими: "--exclude-domains="list.ru","hotlog.ru","static.exaccess.ru"" (без кавычек).
 
Конкретно сама реализация для файла со списком URL'ов будет выглядеть так:
wget -Hpk -nv -e robots=off -nd -nc --exclude-domains="list.ru","hotlog.ru","static.exaccess.ru" -U "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 4.0)" -o log.log -i URLs.txt
где URLs.txt - имя файла со списком URL'ов (по одному на строку, безо всяких дополнительных символов).
Проверил для небольшого числа URL'ов - работает отлично!  
Сразу скажу, что нельзя закрывать программу до того момента, пока она не закончила свою работу, т.к. конвертация ссылок на картинки и каскадные таблицы стилей в них происходит в самый последний момент, когда все файлы уже загружены, причём только внутри тех HTML-страниц, которые были загружены в течение текущей сессии (это связано с тем, что WGET просто не знает, что пропускаемые при докачке файлы с не-HTML-расширением являются HTML-документами. Причём влияет здесь только расширение файла, получаемое из конкретного указанного URL'а). Однако если соединение разорвалось где-то в середине очереди, ничего страшного: загруженные файлы будут всё же конвертированы после того, как wget пройдет по списку оставшихся и не сможет их скачать. А нескачанные можно потом докачать повторным запуском программы, причём можно даже не модифицировать файл URLs.txt: всё равно то, что уже было скачано, заново закачиваться не будет (и, к сожалению, не будет обрабатываться, т.е. необходимые для корректного отображения страницы файлы, не успевшие загрузиться, так и не будут загружены)... Именно ради того, чтобы при обрыве соединения не загружались заново уже скачанные вэб-страницы, пришлось пожертвовать в этом варианте загрузки расширениями сохраняемых вэб-страниц: ни одна из них не будет иметь расширения .htm или .html. Полученные файлы будут иметь имена вида "misc.cgi@action=printtopic&forum=5&topic=NNNN", расширением по мнению операционной системы будет "cgi@action=printtopic&forum=5&topic=NNNN".  Тем не менее, все перекрёстные ссылки между загруженными в течение одной сессии вэб-страницами будут работать, а ссылки на незагруженные страницы будут корректно перенаправлять в Интернет.
Информация о том, какие файлы были загружены, а какие нет, будет выводиться в файл log.log, находящийся в той же папке, где и все загружаемые файлы. Из него можно будет узнать, какие файлы (особенно вэб-страницы) успели полностью скачаться. Если хотя бы часть файлов, принадлежащих данной вэб-странице, недокачаны (это адреса c соответствующими именами, идущие сразу после адреса вэб-страницы в файле log.log), следует удалить и саму вэб-страницу, и принадлежащие ей файлы, чтобы при докачке все эти файлы были корректно загружены.
Если очень не хочется этим заниматься, и не жалко времени Интернета или траффика, вместо "-nc" можно написать "-NE". Тогда при докачке не будут заново загружаться только картинки и другие необходимые файлы, а сами вэб-страницы форума - будут. Но зато и сохраняться они будут сразу с правильным расширением...
 
Единственным недостатком данного варианта является маловероятная ситуация, когда две разные вэб-страницы содержат, например, две различные картинки, расположенные на разных серверах, но имеющие одинаковое имя. В такой ситуации будет загружена только первая из них в порядке следования URL'ов в файле URLs.txt, и во второй вэб-странице ссылка на картинку будет вести на неё же.
Этой ситуации можно легко избежать, если соединение с Интернетом достаточно надёжное, и Вы можете быть уверены, что процесс загрузки сможет дойти до конца. Тогда достаточно убрать параметр "-nc", и, раз всё будет закачано за один раз, добавить параметр "-E", чтобы загружаемые вэб-страницы сразу сохранялись с расширением HTML (это приведёт к тому, что, даже если указать параметр "-nc", при попытке дозакачать вэб-страницы их HTML-части будут заново загружаться, но необходимые для их корректного отображения файлы не будут. Впрочем, параметр "-nc" лишил бы нас единственного серьёзного преимущества второго варианта: загрузки всех разных файлов с одинаковым именем и сохранением их с разными именами. Есть, правда альтернатива в таком случае: оставить "-E" и добавить "-N". Тогда из двух одинаковых картинок будет сохранена только одна (хотя скачиваться, в общем случае, будут обе), но зато ссылка на вторую в соответствующей странице будет перенаправлять в Интернет. Остальные картинки при этом повторно закачиваться не будут, однако для каждой будет отправляться на сервер запрос о дате её последней модификации и размере, что займёт время и немного траффика):
 
wget -Hpk -e robots=off -nd -E --exclude-domains="list.ru","hotlog.ru","static.exaccess.ru" -U "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 4.0)" -i URLs.txt
 
Если же нужна возможность докачки, но есть опасность, что часть разных файлов будут иметь одинаковые имена, можно воспользоваться менее красивым, но тоже достаточно удобным вариантом:
wget -Hpk -nv -e robots=off -nH -nc --exclude-domains="list.ru","hotlog.ru","static.exaccess.ru" -U "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 4.0)" -o log.log -i URLs.txt
Здесь всё аналогично первому варианту, но будет создана масса поддиректорий, структуры которых будут воссоздавать структуру директорий на серверах, с которых ведётся закачка.

Всего записей: 1834 | Зарегистр. 22-03-2003 | Отправлено: 16:10 04-12-2003 | Исправлено: popkov, 00:33 16-12-2003
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Способ мне кажется очень удачным, но есть одна неясность, связанные с построением списка URL'ов:
 
Как определить, в каких диапазонах (и по каким правилам) изменяются номера топиков в конкретном разделе форума?
 
Судя по всему, определить, в каких диапазонах изменяются номера топиков, не получится, т.к. тогда придётся закачивать также очень старые темы. Придётся идти другим путём: сохраняем в виде текстового файла страницу
http://forum.ru-board.com/forums.cgi?forum=5&days=200&pagemax=1000
а затем какой-то программой экстрагируем оттуда все последовательности символов вида "topic=NNNN" и "topic=NNNNN" в текстовый файл по одной на строку. Затем дописываем в начало каждой строки "http://forum.ru-board.com/misc.cgi?action=printtopic&forum=5&" (без кавычек), и файл готов.  
 
Только вот где бы взять такую программку?

Всего записей: 1834 | Зарегистр. 22-03-2003 | Отправлено: 11:02 05-12-2003 | Исправлено: popkov, 17:16 15-12-2003
OlegChernavin

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может проще взять Offline Explorer, задать ему эту ссылку с уровнем=0 и разрешить закачивать только адреса, в которых есть printtopic (в Фильтрах URL | Имя файла | Произвольная конфигурация.
 
Так будет намного проще.
 
А если прямых ссылок на "версии для печати" нет, то в 3.0 версии Offline Explorer Pro есть такая фича - URL Substitutes, где можно определить, что все на всех страницах найденные УРЛы менять на такие-то, если они выглядят так-то.  
 
И все.

Всего записей: 2305 | Зарегистр. 02-10-2003 | Отправлено: 16:57 15-12-2003
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
OlegChernavin
Спасибо за альтернативу, только вот на оффсайте программы последней версией является Offline Explorer Pro 2.9.1352 Service Release 3... ( http://www.metaproducts.com/mp/mpProducts_Downloads_Current.asp ). Вы его имели в виду?

Всего записей: 1834 | Зарегистр. 22-03-2003 | Отправлено: 17:40 15-12-2003 | Исправлено: popkov, 17:58 15-12-2003
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Решение проблемы с построением списка URL'ов, похоже, удалось найти. Для этого вначале скачиваем wget'ом страницу со списком URL'ов без конвертации ссылок в ней. Команда:
wget "http://forum.ru-board.com/forums.cgi?forum=5&days=200&pagemax=1000" -O URLs1.txt
А затем и следующие страницы:
wget "http://forum.ru-board.com/forums.cgi?forum=5&show=1000" -O URLs2.txt
wget "http://forum.ru-board.com/forums.cgi?forum=5&show=2000" -O URLs3.txt
wget "http://forum.ru-board.com/forums.cgi?forum=5&show=3000" -O URLs4.txt
В результате страницы будут сохранены в файлы URLsN.txt, N=1, 2, 3, 4.  
Теперь открываем этот файл в Блокноте, и заменяем все последовательности вида "topic.cgi?forum=5&" на "http://forum.ru-board.com/misc.cgi?action=printtopic&forum=5&", а последовательности "&start=" на "">" (кавычка и знак "больше"). Сохраняем изменения, после чего загружаем все ссылки из него одним из описанных выше способов, добавив только параметр "-F". Например:
wget -HFpk -nc -e robots=off -nd --exclude-domains "list.ru","hotlog.ru","static.exaccess.ru" -U "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 4.0)" -o log.log -i URLs1.txt
 
OlegChernavin
В силу отсутствия необходимых административных привилегий, у меня пока просто нет возможности установить Offline Explorer, а wget вообще устанавливать не надо. К тому же, несмотря на громоздкость команды, пользоваться предложенным мной способом совсем несложно.
Хотя за идею всё равно спасибо!

Всего записей: 1834 | Зарегистр. 22-03-2003 | Отправлено: 00:31 16-12-2003 | Исправлено: popkov, 16:56 18-12-2003
albel



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
popkov

Цитата:
Спасибо за альтернативу, только вот на оффсайте программы последней версией является Offline Explorer Pro 2.9.1352 Service Release 3...  

скоро начнется открытое бета-тестирование 3.0 (см. сообщение автора - OlegChernavin в теме по Offline Explorer).
Видимо, это имелось в виду.

----------
Я никогда не спорю. Я никогда не противоречу. Я иногда забываю. / © Б.Дизраэли/

Всего записей: 11003 | Зарегистр. 30-08-2002 | Отправлено: 01:48 16-12-2003
OlegChernavin

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, надеюсь, что уже на этой неделе. А насчет административных прав для установки Offline Explorer - можно установить его в любую папку, хоть в Мои Документы.

Всего записей: 2305 | Зарегистр. 02-10-2003 | Отправлено: 12:59 16-12-2003
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
OlegChernavin
Установить-то можно, а работать он не будет: при запуске выдаётся сообщение:

Цитата:
Program Error
OE.exe has generated errors and will be closed by Windows. You will need to restart the program.  
An error log is being gcreated.  

Причём на компьютере с админскими правами всё прекрасно работает...

Всего записей: 1834 | Зарегистр. 22-03-2003 | Отправлено: 14:56 18-12-2003 | Исправлено: popkov, 14:58 18-12-2003
dosya



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
думаю лучше написать bat -файл для httrack
 
или просто тупо скачивать с коммандной строки печатные версии, отминусовав картинки.
 
httrack http://forum.ru-board.com/misc.cgi?action=printtopic&forum=5&topic=19 --gif

Всего записей: 738 | Зарегистр. 27-02-2003 | Отправлено: 23:00 18-07-2004
rish



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
наолж подскажите что просиходит с wget.
ситуация следующая . прописываю ftp_proxy и http_proxy, пароль логин на это дело.
создаю вот такой запрос на скачку.
 
wget -c -Q50000K -P "../../../Gal_Ltd/Внутренние документы/Отдел ТП/Патчи/" -m -t10 -nH --cut-dirs=4 -a gal712.log -v -A.txt,.zip,.doc,.EXE,.RAR,.R0[0-9],.R1[0-9],.exe -R "*ATLMS*","*ATLORA*","*ATLBOOK*","*ALTER*" ftp://ftp.galaktika.ru/pub/support/galaktika/bug_fix/GAL712/
 
запускал на прошлой неделе. все нормально нормально работало.
теперь запускаю.

Код:
 
--15:34:24--  ftp://ftp.galaktika.ru/pub/support/galaktika/bug_fix/GAL712/
           => `../../../Gal_Ltd/Внутренние документы/Отдел ТП/Патчи/GAL712/index.html'
Connecting to 192.168.190.7:3128... connected.
Proxy request sent, awaiting response... 200  
Length: unspecified [text/html]
 
    0K .                                                         5.26 KB/s
 
Last-modified header missing -- time-stamps turned off.
15:34:25 (5.26 KB/s) - `../../../Gal_Ltd/Внутренние документы/Отдел ТП/Патчи/GAL712/index.html' saved [1848]
 
 
FINISHED --15:34:25--
Downloaded: 1,848 bytes in 1 files
 

 
фтп ни хрена не зеркалирует. зачем то создает index.html файл , в котором храниться листинг корневого каталога фтп сервера.а дальше идти не хочет.  
отрубаю прокси (use_proxy=off) все нормально. настройки прокси на машине смотрящей в инет ничего не менял. все как было.
в чем грабли.

Всего записей: 164 | Зарегистр. 10-05-2004 | Отправлено: 15:41 23-11-2005
taurman



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
По поводу eCatch. Как известно, эта программа не обновлялась с 1999 года, потом 25 Ноября 2002 года проэкт воскрес, поменяв свое название на Wysigot, с тех пор регулярно выпускаются новые версии программы. Очень удобная штука. Сначала конечно не очень, но это пока не разобрался как оно работает. Фишка в том, что запоминаются страницы на которых ты бывал, еще хорошо что не используется движок IE при загрузке страниц. IE используется только при локальном просмотре.
 


Страница загрузки: http://www.wysigot.com/int/download.html
Как оно выглядит: http://www.wysigot.com/int/screenshots.html
 
Обсуждение: http://forum.ru-board.com/topic.cgi?forum=5&topic=8420#1
Лечение: http://forum.ru-board.com/topic.cgi?forum=35&topic=14841&start=0
 
Вот тут мой материал в картинках, как ее быстро вылечить.

Всего записей: 50 | Зарегистр. 03-03-2006 | Отправлено: 04:53 19-03-2006 | Исправлено: taurman, 05:10 19-03-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » Программы » Лучший софт для чтения конференции в офф-лайне


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru