[Wget - насос для Интернета]
Wget 1.5.3. Руководство пользователя
VAP home logo

Приложения

Данный раздел содержит некоторые справочные материалы, которые я посчитал полезными. Такие как спецификация стандарта исключений для роботов и список добровольных участников в разработке Wget.


Роботы

Поскольку Wget в состоянии прочесывать вэб, то его сложно расценивать как одного из вэб "роботов". Поэтому Wget понимает RES (Robots Exclusion Standard - стандарт исключений для роботов) и может обрабатывать содержимое файлов "/robots.txt" используемых администраторами серверов для закрытия части их систем от блуждания по ним Wget.

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

wget -r http://fly.cc.fer.hr/

В первую очередь будет выгружен индекс для "fly.cc.fer.hr". Если Wget обнаружит что-то достойное выгрузки с этого хоста, то только тогда он загрузит информацию для роботов и после этого примет решение выгружать ссылки или нет. Файл "/robots.txt" обрабатывается только один раз на хост. Wget не поддерживает "META" тэг для роботов.

Описание стандарта исключений для роботов было написано и поддерживается Мартином Костером (Martijn Koster <m.koster@webcrawler.com>). С его разрешения я предоставляю (слегка модифицированную) текстовую версию RES.


Введение в RES

"WWW роботы" (называемые также "странниками" или "пауками") представляют собой программы, которые прочесывают множество документов в World Wide Web посредством рекурсивной выгрузки связанных ссылками страниц. За дополнительной информацией обратитесь к странице описания роботов.

В 1993 и 1994 годах было несколько случаев когда роботы посещали WWW сервера, где они были нежелательны по некоторым причинам. Иногда эти причины были чисто специфичными для роботов, например, отдельные роботы буквально затапливали своими огнестрельными запросами или периодически выгружали одни и теже файлы. В других случаях роботы прочесывали те части WWW серверов, которые не имели какой-либо применимости, например, очень глубокие виртуальные деревья, дублируемую информацию, временные данные или CGI скрипты с побочными эффектами, такие как скрипты опросники.

Данные инцинденты продемонстрировали необходимость в установке механизмов для WWW серверов, которые позволяли бы передать роботам информацию о частях серверов не подлежащих обработке. Этот стандарт описывает данную необходимость и необходимые решения.

Данный документ представляет собой результат соглашения от 30 Июня 1994 года на списке рассылки посвященном роботам ("robots@webcrawler.com"), между большинством авторов роботов и другими людьми заинтересованными в данном вопросе. Он также был открыт для обсуждения в списке рассылки "Technical World Wide Web" <www-talk@info.cern.ch>. Данный документ базируется на предшествовавшем ему черновике имевшим тоже название.

Это не официальный стандарт определенный в официальных стандартных рамках или владеемый какой-то коммерческой организацией. Он не насаждается кем-либо и нет никаких гарантий, что существующие и будущие роботы будут придерживаться его. Рассматривая это в общем виде, большинство авторов роботов обещали WWW сообществу защищать WWW сервера от нежелательного поведения их роботов.

Новейшая версия данного документа может быть получена с "http://info.webcrawler.com/mak/projects/robots/norobots.html".


Формат RES

Формат и семантика файла "/robots.txt" следующая:

Файл состоит из одной или более записей разделенных одной или несколькими пустыми строками (завершаемыми при помощи "CR", "CR/NL" или "NL"). Каждая запись содержит строки формата:

<поле>:<опциональный_пробел><значение><опциональный_пробел>

Имена полей не чувствительны к регистру символов.

Комментарии могут быть вставлены в файл с использованием соглашений UNIX оболочки класса "bourne": символ "#" означает, что предшествующий пробел (если есть) и все символы вплоть до конца строки игнорируются. Строки содержащие только комментарий игнорируются полностью и тем самым не индицируют границы записи.

Запись начинается с одной или нескольких строк "User-Agent", за которыми следуют одна или несколько запрещающих строк, что объяснено ниже. Нераспознанные заголовки игнорируются.

Наличие пустого файла "/robots.txt" не имеет какой-то определенной семантики и расценивается как его полное отсутствие, т.е. все роботы не рассматриваются как нежелательные.


Поле пользовательского агента

Значением поля "User-agent" является имя робота для которого запись описывает политику доступа.

Если в записи существует более одного поля "User-agent", такая запись описывает идентичную политику более чем для одного робота. В записи должно существовать как минимум одно поле.

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

Если значение поля "*", то такая запись описывает умалчиваемую политику доступа для любого робота, который не попадает пол любое другое из существующих определений. Использование нескольких таких записей в "/robots.txt" не разрешается.


Поле запрета

Значение этого поля описывает конкретный URL, который не должен обрабатываться. Это может быть как полный так и частичный путь. Любой URL, который начинается с этого значения, не должен быть выгружен. Например, "Disallow: /help" запрещает одновременно и "/help.htm", и "/help/index.html"; в то время как "Disallow: /help/" будет запрещать "/help/index.html", но разрешать "/help.html".

Любое пустое значение индицирует, что все URL могут быть выгружены. Как минимум одно запрещающее поле должно существовать в записи.


Примеры

Следующий пример файла "/robots.txt" определяет, что ни один робот не должен посещать любой URL начинающийся с "/cyberworld/map/" или с "/tmp/":

# robots.txt для http://www.site.com/

User-agent: *
Disallow: /cyberworld/map/ # Это бесконечное виртуальное URL пространство
Disallow: /tmp/ # это скоро исчезнет

Данный пример файла "/robots.txt" определяет, что ни один робот не должен посещать любые URL начинающиеся с "/cyberworld/map/", за исключением робота именующегося "cybermapper":

# robots.txt для http://www.site.com/

User-agent: *
Disallow: /cyberworld/map/ # Это бесконечное виртуальное URL пространство

# Cybermapper знает где можно ходить.
User-agent: cybermapper
Disallow:

Этот пример индицирует, что ни один робот не должен посещать данный сайт вообще:

# уходите
User-agent: *
Disallow: /

Вопросы безопасности

Вы должны знать, что при использовании Wget он передает по сети пароли в нешифрованном виде, что может представлять из себя проблему для безопасности. Здесь приведены основные ситуации и некоторые решения.

  1. Пароли в командной строке видимы через использование "ps". Если это проблема, то избегайте использования паролей в командной строке. Для этой цели вы можете воспользоваться файлом ".netrc".

  2. При использовании незащищенной "basic" схемы авторизации, пароли передаются открытым текстом через сеть, маршрутизаторы и шлюзы.

  3. FTP пароли тоже никак не шифруются. В данный момент не существует хорошего решения этой проблемы.

  4. В то время как при "нормальном" выводе Wget пытается скрыть пароли, отладочный отчет показывает их во всех формах. Эта проблема решается обычной осторожностью при посылке отладочных отчетов, даже если вы посылаете их мне.


Участники

Автором GNU Wget является Hrvoje Niksic <hniksic@srce.hr>. Однако его разработка никогда бы не была доведена до текущего состояния без помощи многих людей не зависимо от того предоставляли ли они отчеты об ошибках, делали предложения, заплаты или просто говорили "Спасибо!".

Особенные благодарности хочется выразить следующим людям (без какого-либо определенного порядка):

  • Karsten Thygesen--donated the mailing list and the initial FTP space.
  • Shawn McHorse--bug reports and patches.
  • Kaveh R. Ghazi--on-the-fly `ansi2knr'-ization.
  • Gordon Matzigkeit--`.netrc' support.
  • Zlatko Calusic, Tomislav Vujec and Drazen Kacar--feature suggestions and "philosophical" discussions.
  • Darko Budor--initial port to Windows.
  • Antonio Rosella--help and suggestions, plust the Italian translation.
  • Tomislav Petrovic, Mario Mikocevic--many bug reports and suggestions.
  • Francois Pinard--many thorough bug reports and discussions.
  • Karl Eichwalder--lots of help with internationalization and other things.
  • Junio Hamano--donated support for Opie and HTTP `Digest' authentication.
  • Brian Gough--a generous donation.

Следующие люди предоставляли заплаты, отчеты об ошибках и сборке, полезные предложения, услуги бета-тестирования, приятную почту и много-много других вещей, что сделали поддержку приятной:

Tim Adam, Martin Baehr, Dieter Baron, Roger Beeman and the Gurus at Cisco, Mark Boyns, John Burden, Wanderlei Cavassin, Gilles Cedoc, Tim Charron, Noel Cragg, Kristijan Conkas, Damir Dzeko, Andrew Davison, Ulrich Drepper, Marc Duponcheel, Aleksandar Erkalovic, Andy Eskilsson, Masashi Fujita, Howard Gayle, Marcel Gerrits, Hans Grobler, Mathieu Guillaume, Karl Heuer, Gregor Hoffleit, Erik Magnus Hulthen, Richard Huveneers, Simon Josefsson, Mario Juric, Goran Kezunovic, Robert Kleine, Fila Kolodny, Alexander Kourakos, Martin Kraemer, Simos KSenitellis, Tage Stabell-Kulo, Hrvoje Lacko, Dave Love, Jordan Mendelson, Lin Zhe Min, Charlie Negyesi, Andrew Pollock, Steve Pothier, Marin Purgar, Jan Prikryl, Keith Refson, Tobias Ringstrom, Juan Jose Rodrigues, Heinz Salzmann, Robert Schmidt, Toomas Soome, Sven Sternberger, Markus Strasser, Szakacsits Szabolcs, Mike Thomas, Russell Vincent, Douglas E. Wegscheid, Jasmin Zainul, Bojan Zdrnja, Kristijan Zimmer.

Извинения всем, кого я случайно забыл, и большая благодарность всем подписчикам списка рассылки Wget.




ФОБОС: погода в г.Тольятти