Это реализация протокола исключения robots.txt для языка GO (Golang).
Чтобы создать и запустить тесты запустить тест в справочнике.
Теплый прием.
Спасибо.
Как обычно, никакой специальной установки не требуется, просто
Импорт "github.com/temoto/robotstxt"
Иди иди, и ты готов.
Прежде всего, вам нужно анализировать данные robots.txt. Вы можете сделать это с функциями Frombytes (body [] byte) (*robotsdata, ошибка) или то же самое для строки:
роботы, err: = robotstxt.frombytes ([] byte ("user-agent: * ndisallow:"))
Роботы, err: = robotstxt.fromString ("Пользовательский агент: * ndisallow:")
По состоянию на 2012-10-03, Frombytes является наиболее эффективным методом, все остальное является оберткой для этой основной функции.
Есть несколько удобных конструкторов для различных целей:
Из ответа HTTP. Он не вызывает ответа. Body.close ():
роботы, err: = robotstxt.fromresponse (resp)
resp.body.close ()
Если ошибка! = nil {
log.println ("robsing robots.txt:", err.error ())
}
FromStatusString, если вы предпочитаете читать байты (строка) сами. Передача кода состояния применяется после логики в соответствии с интерпретацией Google Files.txt Files:
- Статус 2xx -> Body Parse с Frombytes и применять правила, перечисленные там.
- Статус 4xx -> Разрешить все (даже 401/403, как рекомендовано Google).
- Другое (5xx) -> запретить все, считайте это временной недоступностью.
Контент Parsing Robots.txt создает своего рода логическую базу данных, которую вы можете запросить (r *robotsdata) testagent (url, string Agent) (bool).
Явное прохождение агента полезно, если вы хотите запросить различные агенты. Для пользователей единого агента есть эффективная опция: robotsdata.findgroup (string string useragent) возвращает структуру с методом .test (String) и.
Простой запрос с явным пользовательским агентом. Каждый вызов сканирует все правила.
разрешить: = robots.testagent ("/", "foobot")
Или запросить несколько путей против того же пользовательского агента для производительности.
группа: = robots.findgroup ("barbot")
Group.test ("/")
Group.test ("/скачать.mp3")
group.test ("/news/article-2012-1")
Почетные участники (в неопределенном порядке):
- Илья Григорик (Игригорик)
- Мартин Ангерс (Пукитобио)
- Миха Горелик (MyNameiSfiber)
Первоначальный коммит и другие: Sergey Shepelev [email protected]