Это командная утилита для скрейпинга веб-сайта OID Reference (https://oidref.com), написанная на языке программирования Go. Программа предназначена для обхода сайта, сбора данных о корневых и дочерних узлах OID и сохранения этой информации в базе данных SQLite. Кроме того, она поддерживает возможность возобновления парсинга с того места, где он был прерван в случае остановки программы.
- Сбор данных с веб-сайта OID Reference, включая корневые узлы и их дочерние узлы.
- Сохранение собранной информации в базу данных SQLite.
- Возможность возобновления парсинга с последнего обработанного узла в случае остановки или перезапуска программы.
- Реализация механизма повторных попыток для обработки HTTP-запросов к веб-сайту.
- Включает юнит-тесты для обеспечения корректности работы основных компонентов программы.
Прежде чем запустить программу, убедитесь, что на вашей системе установлен Go.
-
Склонируйте этот репозиторий на свой компьютер:
git clone https://github.com/your-username/eshelon.git
-
Перейдите в директорию проекта:
cd eshelon
- Соберите программу на языке Go:
go build
- Запустите программу:
./eshelon
По умолчанию программа создает файл базы данных SQLite с именем default.db в текущей директории. Вы можете указать другой путь к файлу базы данных, используя флаг --output:
./eshelon --output mydata.db
Программа начинает с парсинга корневых узлов с веб-сайта OID Reference (https://oidref.com). Затем она продолжает скрейпить информацию о каждом корневом узле и его дочерних узлах. Собранная информация сохраняется в базе данных SQLite.
Если программа была прервана или остановлена, и вы хотите возобновить парсинг с места остановки, просто запустите программу снова. Она проверит базу данных на последний обработанный узел и продолжит с этого места.
Программа использует базу данных SQLite для хранения собранных данных. Схема базы данных включает следующие таблицы:
Хранит информацию о корневых узлах, включая их имя, количество дочерних узлов (subchildren), общее количество узлов (subnodes total), описание и дополнительную информацию.
Хранит информацию о дочерних узлах, включая их имя, количество дочерних узлов и общее количество узлов.
Следит за прогрессом обработки узлов, помечая узлы как обработанные, чтобы избежать дублирования.
Программа включает в себя юнит-тесты для проверки корректности ее функционала. Вы можете запустить тесты с помощью команды go test:
go test
-
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.