Импорт данных
Загружаем данные о книгах издательства МИФ из публичных источников.
Шаг 1. Импорт из Яндекс.Маркета
Директория: import
Команда: go run import.go
Что делает: загружает каталог МИФ для Яндекс.Маркета и парсит информацию из него в файлы import/categories.csv и import/books.csv
с категориями и данными о продаваемых книгах.
В директории import также есть файл mif-catalog.xml, он нужен
только для примера того, в каком формате отдаются данные из каталога.
Шаг 2. Поиск ссылок на сайте МИФ
Директория: link-list
Команда: go run parse.go
Что делает: запрашивает каталог на сайте МИФа в поисках ссылок на книги.
Сохраняет в файле link-list/links.txt список найденных ссылок.
В директории link-list также есть файл links_white.txt, он содержит список ссылок на первые книги из "Белой серии" МИФа.
Шаг 3. Используем sitemap для поиска ссылок на книги
Директория: link-list
Команда: go run sitemap.go
Что делает: запрашивает sitemap/books.xml на сайте МИФа в поисках ссылок на книги.
Сохраняет в файле link-list/links_sitemap.txt список найденных ссылок.
В директории link-list также есть файл links_white.txt, он содержит список ссылок на первые книги из "Белой серии" МИФа.
Шаг 4. Сохраняем категории
Директория: save
Команда: env DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASS=mysecretpassword DB=mifbooks go run categories.go
Что делает: берет из файла import/categories.csv категории и сохраняет их в БД.
Если категория с таким ID уже существует, она будет обновлена в базе данных.
Параметры доступа к БД задаются через переменные окружения.
Шаг 5. Сохраняем книги из маркета
Директория: save
Команда: env DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASS=mysecretpassword DB=mifbooks go run books.go
Что делает: берет из файла import/books.csv книги и сохраняет их в БД.
Если книга с таким URL уже существует, она будет обновлена в базе данных.
Параметры доступа к БД задаются через переменные окружения.
Шаг 6. Сохраняем URL'ы, которые насобирали
Директория: save
Команда: env DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASS=mysecretpassword DB=mifbooks go run urls.go
Что делает: берет из файлов link-list/links_white.txt, link-list/links_sitemap.txt, link-list/links.txt
ссылки и сохраняет их в БД. Ссылка будет добавлена в таблицу books, но вставка произойдет только в том случае,
если книги с такой ссылкой еще не существует.
Параметры доступа к БД задаются через переменные окружения.
Шаг 7. Загружаем книги для собранных URL'ов
Директория: update
Команда: env DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASS=mysecretpassword DB=mifbooks go run books.go
Что делает: для всех книг из таблицы books, у которых не задан title (есть только URL книги), заходит
на страницу книги и собирает с этой страницы основную (ID, название, автор, категория) и дополнительную (ISBN)
информацию.
Шаг 8. Загружаем информацию о форматах книг
Директория: update
Команда: env DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASS=mysecretpassword DB=mifbooks go run volumes.go
Что делает: на основе файла link-list/links.txt сохраняет информацию о том, в каких форматах (бумага, электронный, аудио) представлена книга.