Skip to main content

Модуль категоризации доменов для Python

Модуль skydns_url2cat на языке программирования Python

Модуль skydns_url2cat предоставляет функционал для доступа к базе данных с внутренней каноникализацией запросов.

Для работы с модулем с помощью pip установите его на каждую целевую систему. После установки будут доступны команды:

  • skydns-url2cat - для разовой проверки урла по заданной базе
  • skydns-url2cat-update - для обновления базы через сервера SkyDNS

Программный интерфейс

Пример использования модуля:

>>> import skydns_url2cat

>>> skydns_url2cat.init(path_to_skydns_db)
True
>>> skydns_url2cat.lookup('google.com')
('google.com/', (48,))

База sqlite работает нестабильно на сетевых файловых системах.

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

Перечитывание базы

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

Автоматическое перечитывание

Для включения режима автоматического перечитывания базы, после инициализации модуля, вызовите метод auto_refresh

>>> import skydns_url2cat

>>> skydns_url2cat.init(path_to_skydns_db)
True
>>> skydns_url2cat.auto_refresh()
>>> skydns_url2cat.lookup('google.com')
('google.com/', (48,))

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

Обновление

Для обновления запустите команду

$ skydns-url2cat-update <path_to_db> <username> <password>

При этом произойдет проверка доступности обновлений, скачивание и применение обновления к указанной базе.

Настроить периодический запуск скрипта можно при помощи cron.

Модуль skydns_url2cat

exceptionskydns_url2cat.reader.DatabaseError

classskydns_url2cat.reader.Reader

Класс для чтения содержимого базы

configure(path username=None, password=None)

Настраивает объект, задает путь до базы данных и авторизационные данные

lookup(url)

Функция для получения категории урла

Возвращает кортеж из 2 элементов:

  1. Урл, который найден в базе
  2. Список id категорий

Если урл не найден или невозможно разобрать, первый элемент будет None.

Exception: UrlParseError
Параметры: url – str
Результат: tuple

lookup_with_names(url)

Функция для получения категории урла. В отличие от метода lookup возвращает список имен категорий.

category(i)

Возвращает имя категории

categories()

Возвращает доступные категории

languages()

Возвращает доступные локализации

category_for_lang(lang, i)

Возвращает имя категории в заданной локализации

categories_for_lang(lang)

Возвращает категории в заданной локализации

rollback()

Инициализировать автоматические перечитывание