Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Ramazan Ja-Far                       2:5020/400     14 Oct 2002  02:55:16
 To : Victor Wagner
 Subject : Re: teleport
 -------------------------------------------------------------------------------- 
 
 Hi!
 
 On Sun, 13 Oct 2002 05:33:58 +0000 (UTC), Victor Wagner wrote:
 
  RJF>> Допустим, есть domain accept/reject и extension
  RJF>> accept/reject, когда проще и эффективнее было-бы
  RJF>> использовать URL regex.
  VW>Ты бы этот ман прочитал что-ли.
 
 Я его читал, когда писал ответ. У меня есть debian,
 живущий в chroot; в нём я закачал wget 1.8.1-6.
 
 -A acclist --accept acclist
 -R rejlist --reject rejlist
     Specify comma-separated lists of file name suffixes or
     patterns to accept or reject
 Hе сказано, что за patterns и against what are they being
 matched. Потому я оставил своё замечание насчёт regex.
 
  VW>У wget в этом плане куда гибче. Ты можешь ограничить
  VW>а) определенным хостом
 
 --domains
 --exclude-domains
 
  VW>б) поддеревом URL от исходной страницы вниз
 
 --no-parent
 
  VW>в) всем что на данной странице отображается
  VW>(картинки и css-ы брать, а ссылки не брать)
  VW>и еще десятком вариантов.
 
 --page-requisites
 
 Hу что, пан Вагнер, я справился с домашним
 заданием :)?
 Однако, эту старую собаку (wget) сложно научить
 новым трюкам. По крайней мере, про десяток
 вариантов это преувеличение.
 
 Скажем, к чему 5 опций: domain acc/rej
 + suffix acc/rej + no-parent?
 
 Когда, в принципе, алгоритм очень прост:
 1) имеем список исходных URLs, для каждого есть
    потенциал рекурсии;
 2) закачиваем [первый] URL, (если список пуст,
    выходим) смотрим, можно ли из него отпарсить
    список URLs/requisiteURLs;
    используем такие параметры как --follow-tags,
    --ignore-tags, --relative;
 3) вычисляем остаток потенциала рекурсии для списка;
    используем --page-requisites;
 4) смотрим, какие URLs are followable; пользуемся
    domain acc/rej + suffix acc/rej + no-parent;
 5) добавляем оставшиеся после п.4 URLs к основному
    списку и идём к п.2
 
 Так вот, параметры в п.2 - глобальные, когда
 можно сделать parent-URL зависимыми.
 Поведение п.4 зависит от 5 параметров (из них
 4 списка), когда можно обойтись одним списком
 regex.
 
  VW>Интересен не только факт, закачан ли файл полностью, а также 
  VW>и насколько он закачен.
 
 8-()?
 При предложенной мне схеме об этом скажет
 размер временного файла (если он закачан не
 полностью). Если временного файла нет - URL
 закачан полностью.
 
  RJF>> И, естественно, нужен способ проверки валидности
  RJF>> частично закачанных файлов. Т.е. нужно где-то
  RJF>> запоминать характеризующую ресурс информацию из
  RJF>> заголовков HTTP "Content-Type", "Content-Length",
  RJF>> "Last-Modified", "ETag".
 
  VW>Content-Type запоминать не обязательно. Имя есть, и ладно.
  VW>Content-Length с очевидностью возвращает системный вызов stat.
  VW>Last-Modified - тоже, хотя и с меньшей очевидностью.
 
 Ты не понял.
 1)
 Content-Length  показывает, каким должен быть
 временный файл. Он же по определению неполный.
 stat выдаст значение, меньшее Content-Length,
 выданного сервером в исходном ответе.
 
 И кроме того, файл на сервере за это время мог
 поменяться. О факте изменения мы можем судить
 в т.ч. по сообщаемому размеру. Это очень
 существенная характеристика. По крайней мере,
 серверы чаще её сообщают, чем Last-Modified.
 
 2)
 Last-Modified можно штамповать на временном
 файле при обрыве, при получении сигнала (SIGTERM,
 SIGKILL), но это требует перехватки сигнала
 в программе. К чему лишний геморрой? А если
 просто вырубилось питание? Это не обрабатывается.
 Кусок недописанного файла останется, если fs
 достаточно надёжна (ext3 and similar), но на
 нём будет проставлено время отрубания питания
 (+/-пара секунд).
 
 Так что лучше сложить Last-Modified "сбоку".
 
 3)
 Content-Type тоже полезен. К примеру, вчера по
 URL выдавали image/jpeg, а сегодня решили докачать,
 но там уже дают text/html.
 
 --
 Bye!
 Ramazan
 --- ifmail v.2.15dev5
  * Origin: Svit Online (post does not reflect views of Golden Tele (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: teleport   Ramazan Ja-Far   10 Oct 2002 01:39:36 
 Re^2: teleport   Valery Teurenkov   11 Oct 2002 00:44:38 
 Re: teleport   Ramazan Ja-Far   12 Oct 2002 18:12:41 
 Re: teleport   Victor Wagner   12 Oct 2002 19:23:28 
 Re: teleport   Valentin Nechayev   12 Oct 2002 22:05:55 
 Re: teleport   Ramazan Ja-Far   12 Oct 2002 23:45:21 
 Re: teleport   Ramazan Ja-Far   13 Oct 2002 02:46:50 
 Re: teleport   Victor Wagner   13 Oct 2002 09:33:58 
 Re: teleport   Ramazan Ja-Far   14 Oct 2002 02:55:16 
 Re: teleport   Stas Vlasov   13 Oct 2002 15:54:15 
 teleport   Sergey Abramov   16 Oct 2002 00:24:18 
 Re: teleport   Igor Zesenko   14 Oct 2002 01:08:02 
 Re: teleport   Valentin Nechayev   14 Oct 2002 22:47:14 
Архивное /ru.linux/34843d123d9de.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional