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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Ramazan Ja-Far                       2:5020/400     12 Oct 2002  23:45:21
 To : Victor Wagner
 Subject : Re: teleport
 -------------------------------------------------------------------------------- 
 
 Hi!
 
 On Sat, 12 Oct 2002 15:23:28 +0000 (UTC), Victor Wagner wrote:
 
  RJF>> Сначала я перечислю недостатки wget:
  RJF>> * не умеет passive FTP (я использую ncftpget как замену),
  VW>Ы??? 
  VW>vitus@wagner$ wget --version
  VW>GNU Wget 1.8.1
  VW>vitus@wagner$ wget --help |grep passive
  VW>       --passive-ftp           использовать "пассивный" режим передачи.
 
 Sorry, давным-давно я делал /passive в man wget и
 там ничего не нашлось на эту тему (для версии GNU
 Wget 1.6). С тех пор я пользуюсь ncftpget для FTP
 URLs.
 
  VW>234 строки мануала на разделы Recursive Retrieval Options и Recursive
  VW>Accept/Reject Objects это мало? 
 
 :-)
 Это измеряется не количеством строк в manpages, а
 удобством/возможностью использования.
 Допустим, есть domain accept/reject и extension
 accept/reject, когда проще и эффективнее было-бы
 использовать URL regex.
 В том же Offline Explorer можно ограничить выкачку
 только определённых поддиректорий с сервера.
 Это удобно, если нужно выкачать многостраничную
 статью, которая пестрит ссылками на другие статьи
 и тематические разделы на сервере (вверх/вбок).
 
  RJF>> * не умеет останавливать процесс рекурсивной закачки и
  RJF>>   запоминать состояние на винте (с тем, чтобы впоследствии
  RJF>>   восстановить),
 
  VW>Опция -c позволяет продолжить процесс с того места, где было закончено
  VW>скачивание без дополнительного запоминания состояния. Ибо сравнение
  VW>результатов предыдущей  закачки с состоянием удаленного сервера
  VW>однозначно определяет оное состояние.
 
 Hет. Hе определяет, к сожалению.
 
  VW>А лучше -m.
 
 Во-первых, многие сервера не высылают Last-Modified,
 в особенности для html страниц. Можно, конечно,
 смотреть на Content-Length. Есть ещё ETag. Однако
 файл на диске ничего не говорит о том, с каким ETag
 он был получен при предыдущей закачке.
 
 Скажем, wget качал файл и я его прервал (по Ctrl-C).
 Как потом wget определит, что файл недокачан -
 прочитает логи? Если для определения этого ему нужно
 соединиться с сервером и сравнить Content-Length,
 то представь ситуацию, когда выкачана сотня файлов
 и нужно сверить длины их всех с сервером!
 Это довольно дорогое удовольствие :-/.
 
 Если ты считаешь, что отдельный файл состояния
 "сессии" не нужен, то можно использовать такую схему:
 пока файл закачивается, он имеет локальное имя
 типа www.srv.dom/directory/.wgettmp.file.html
 
 Тогда можно очень просто определить, закачан ли
 полностью http://www.srv.dom/directory/file.html:
 ищем
   www.srv.dom/directory/file.html
 или, если такого нет,
   www.srv.dom/directory/.wgettmp.file.html
 
 И так для всех 100 файлов :-).
 Это побыстрее будет, чем консультироваться с
 сервером и удобнее, чем пользоваться -nc, сливая
 руками недокачанные файлы (вероятно, определяя
 их через лог).
 
  RJF>> * не понимает JavaScript в страницах (хотя если кто
  RJF>>   понимает, тольку всё рано немного),
  VW>Вот то-то и оно, что немного. Зато понимает cookie-файл от Мозиллы.
  VW>Так что если надо выкачать что-то, требующее авторизации со скриптами и 
  VW>куками, нужно сначала пойти Мозиллой, добраться до того места, где дадут
  VW>качать, и уже туда натравливать wget.
 
 Это интересно :-).
 
 P.S. насчёт URL regex хотелось бы иметь не
 просто accept/reject list, а нечто вроде
  "^www\.server1\.com" content "text/html" refresh_old
  "^www\.server1\.com" content "image/jpeg" no_refresh
  "^www\.server1\.com/.*\.gif$" refresh_old_and_missized
  "^www\.server2\.com" content "text/html" refresh_missized
 Всё что не указано в списке, reject. Или вариации.
 
 Формат такой:
 <pattern1> [content <pattern2>] [options]
 * no_refresh - не обновлять полностью закачанные файлы
 * refresh_missized - обновлять файлы с не совпадающим
   размером
 остальные опции очевидны
 
 И, естественно, нужен способ проверки валидности
 частично закачанных файлов. Т.е. нужно где-то
 запоминать характеризующую ресурс информацию из
 заголовков HTTP "Content-Type", "Content-Length",
 "Last-Modified", "ETag".
 
 Скажем, создавать по два файла:
   www.srv.dom/directory/.wgetD.file.html - data
   www.srv.dom/directory/.wgetH.file.html - headers
 во время закачки http://www.srv.dom/directory/file.html
 
 И по окончании закачки:
 1) переименовывать www.srv.dom/directory/.wgetD.file.html
    в www.srv.dom/directory/file.html
 2) timestamp the www.srv.dom/directory/file.html
 3) удалять www.srv.dom/directory/.wgetH.file.html
 
 Тогда после прибивания wget или сбоя AC power
 получаем ситуацию, в которой разобраться значительно
 легче (и быстрее).
 
 --
 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/34843b8c7efad.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional