Skip to content

skywalker-jpg/web-srapper

Repository files navigation

Веб-Скрейпер для веб-сайта OID Reference

Это командная утилита для скрейпинга веб-сайта OID Reference (https://oidref.com), написанная на языке программирования Go. Программа предназначена для обхода сайта, сбора данных о корневых и дочерних узлах OID и сохранения этой информации в базе данных SQLite. Кроме того, она поддерживает возможность возобновления парсинга с того места, где он был прерван в случае остановки программы.

Возможности

  • Сбор данных с веб-сайта OID Reference, включая корневые узлы и их дочерние узлы.
  • Сохранение собранной информации в базу данных SQLite.
  • Возможность возобновления парсинга с последнего обработанного узла в случае остановки или перезапуска программы.
  • Реализация механизма повторных попыток для обработки HTTP-запросов к веб-сайту.
  • Включает юнит-тесты для обеспечения корректности работы основных компонентов программы.

Начало работы

Прежде чем запустить программу, убедитесь, что на вашей системе установлен Go.

  1. Склонируйте этот репозиторий на свой компьютер:

     git clone https://github.com/your-username/eshelon.git
  2. Перейдите в директорию проекта:

cd eshelon
  1. Соберите программу на языке Go:
go build
  1. Запустите программу:
./eshelon

По умолчанию программа создает файл базы данных SQLite с именем default.db в текущей директории. Вы можете указать другой путь к файлу базы данных, используя флаг --output:

./eshelon --output mydata.db

Использование

Программа начинает с парсинга корневых узлов с веб-сайта OID Reference (https://oidref.com). Затем она продолжает скрейпить информацию о каждом корневом узле и его дочерних узлах. Собранная информация сохраняется в базе данных SQLite.

Возобновление парсинга

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

База данных SQLite

Программа использует базу данных SQLite для хранения собранных данных. Схема базы данных включает следующие таблицы:

root_nodes:

Хранит информацию о корневых узлах, включая их имя, количество дочерних узлов (subchildren), общее количество узлов (subnodes total), описание и дополнительную информацию.

child_nodes:

Хранит информацию о дочерних узлах, включая их имя, количество дочерних узлов и общее количество узлов.

parsing_progress:

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

Юнит-тесты

Программа включает в себя юнит-тесты для проверки корректности ее функционала. Вы можете запустить тесты с помощью команды go test:

go test

Зависимости

Программа зависит от следующих пакетов языка Go:

  • database/sql: Для работы с базой данных SQLite.

  • github.com/mattn/go-sqlite3: Драйвер SQLite для Go.

  • database/sql: Стандартный пакет для работы с базами данных SQL. Используется для взаимодействия с базой данных SQLite.

  • github.com/mattn/go-sqlite3: Драйвер SQLite для Go. Позволяет программе работать с базой данных SQLite.

  • eshelon/work_DB: Ваш собственный пакет (возможно, находящийся в локальной директории), который, вероятно, содержит собственные функции и структуры для работы с базой данных или другой логикой вашей программы.

  • flag: Стандартный пакет для обработки флагов командной строки. Используется для обработки аргументов командной строки, таких как -output.

  • log: Стандартный пакет для логирования. Используется для записи логов и отладочных сообщений.

  • fmt: Стандартный пакет для форматирования строк. Используется, вероятно, для вывода сообщений или данных в консоль.

  • net/http: Стандартный пакет для создания HTTP-запросов и серверов. Используется, вероятно, для выполнения HTTP-запросов к веб-сайту OID Reference.

  • net/http/httptest: Стандартный пакет для тестирования HTTP-серверов. Вероятно, используется для тестирования HTTP-запросов и ответов в юнит-тестах.

  • time: Стандартный пакет для работы с временем. Вероятно, используется для управления временными задержками или интервалами в вашей программе.

  • github.com/PuerkitoBio/goquery: Библиотека для парсинга HTML и XML. Используется для извлечения данных из веб-страниц сайта OID Reference.

Releases

No releases published

Packages

No packages published

Languages