Парсинг на Python данных из игры PoE
40 000 руб. за проект
Существует игра в жанре ARPG под названием Path of Exile (коротко - PoE), на подобии Диабло, но в разы интереснее и сложнее.
У нас фанатский сайт с материалами по игре (различные статьи/гайды), в качестве одной из фишек мы используем тултипы (дополнительное описание при наведении) для предметов/способностей и прочего из игры.
Игра обновляется раз в 3-4 месяца, меняются предметы, способности и т.п., а значит нам нужно не только один раз спарсить все необходимое, но и в том числе настроить функционал для обновления базы с учетом изменения исходников.
Изначально мы парсили базу с другого фан сайта по игре - https://poedb.tw/us/ который сам парсит исходники. Все в целом нормально работает, но есть некоторые проблемы, а именно - непредсказуемость разрабов другого фан сайта, непонятно что и когда они поменяют, а это часто попросту ломало весь наш функционал в самый нужный момент и приходилось часто переписывать функционал. Проблемы с доступом к сайту и т.п.
Мы хотим разработать свой функционал для парсинга всех нужных данных из самой игры.
Для этого уже существует готовый инструмент https://github.com/OmegaK2/PyPoE который позволяет парсить предметы/способности и прочее из исходников игры при помощи питона. Хоть либа и давно не обновлялась но она должна работать.
При желании можете использовать любые другие подходящие инструменты, не обязательно эту либу.
По этому софту есть небольшое комьюнити в реддите https://www.reddit.com/r/pathofexiledev/ там можно будет найти ответы на вопросы.
Все нужные нам данные содержатся в файле content.ggpk в директории с игрой.
Вы можете скачать игру с офф сайта (нужно будет зарегистрироваться) и проверить на исходнике работу либы PyPoE. Игра бесплатная, но сам файл весит ~40гб.
Регатся и качать здесь https://www.pathofexile.com/download
План Б - парсить файлы из Steam версии игры.
В стим версии файла content.ggpk нет, все разбито по мелким файлам, а значит придется изучать что где лежит.
Установить можно из стима, игра бесплатная.
Нужно будет парсить объекты следующих типов:
Они будут сохранятся по одинаковому шаблону, единственное что будет отличаться для них - шаблон верстки.
Нужно будет в том числе загружать изображения связанные с объектами.
По итогу после парсинга и использования шаблонов для предметов мы получаем описание предмета как в игре, выглядит примерно так (центральный блок с названием Veiled orb):
Учитывая что файл content.ggpk весит ~40гб, чтобы не загружать его куда-либо, как можем рассматривать вариант со скриптом под винду, которую мы запускаем на пк на котором уже есть игра последней версии, скрипт парсит нужную инфу из файла игры и отсылает все к нам в базу на сайте.
В идеале чтобы это был микросервис который по нашей команде обновлял данные, но это обсуждается.
Что нужно будет реализовать при разработке:
Необходимые скилы:
При разработке отвечу на любые вопросы и при необходимости составим более подробное ТЗ.
Сроки - гибкие, ориентировочно 1-2 недели, но можно и больше при необходимости.
У нас фанатский сайт с материалами по игре (различные статьи/гайды), в качестве одной из фишек мы используем тултипы (дополнительное описание при наведении) для предметов/способностей и прочего из игры.
Игра обновляется раз в 3-4 месяца, меняются предметы, способности и т.п., а значит нам нужно не только один раз спарсить все необходимое, но и в том числе настроить функционал для обновления базы с учетом изменения исходников.
Изначально мы парсили базу с другого фан сайта по игре - https://poedb.tw/us/ который сам парсит исходники. Все в целом нормально работает, но есть некоторые проблемы, а именно - непредсказуемость разрабов другого фан сайта, непонятно что и когда они поменяют, а это часто попросту ломало весь наш функционал в самый нужный момент и приходилось часто переписывать функционал. Проблемы с доступом к сайту и т.п.
Мы хотим разработать свой функционал для парсинга всех нужных данных из самой игры.
Для этого уже существует готовый инструмент https://github.com/OmegaK2/PyPoE который позволяет парсить предметы/способности и прочее из исходников игры при помощи питона. Хоть либа и давно не обновлялась но она должна работать.
При желании можете использовать любые другие подходящие инструменты, не обязательно эту либу.
По этому софту есть небольшое комьюнити в реддите https://www.reddit.com/r/pathofexiledev/ там можно будет найти ответы на вопросы.
Все нужные нам данные содержатся в файле content.ggpk в директории с игрой.
Вы можете скачать игру с офф сайта (нужно будет зарегистрироваться) и проверить на исходнике работу либы PyPoE. Игра бесплатная, но сам файл весит ~40гб.
Регатся и качать здесь https://www.pathofexile.com/download
План Б - парсить файлы из Steam версии игры.
В стим версии файла content.ggpk нет, все разбито по мелким файлам, а значит придется изучать что где лежит.
Установить можно из стима, игра бесплатная.
Нужно будет парсить объекты следующих типов:
- Базы предметов
- Уникальные предметы
- Карты
- Игровая валюта
- Задания
- Таланты
- Камни умений (способности)
- Свойства предметов (обсуждается)
Они будут сохранятся по одинаковому шаблону, единственное что будет отличаться для них - шаблон верстки.
Нужно будет в том числе загружать изображения связанные с объектами.
По итогу после парсинга и использования шаблонов для предметов мы получаем описание предмета как в игре, выглядит примерно так (центральный блок с названием Veiled orb):
Учитывая что файл content.ggpk весит ~40гб, чтобы не загружать его куда-либо, как можем рассматривать вариант со скриптом под винду, которую мы запускаем на пк на котором уже есть игра последней версии, скрипт парсит нужную инфу из файла игры и отсылает все к нам в базу на сайте.
В идеале чтобы это был микросервис который по нашей команде обновлял данные, но это обсуждается.
Что нужно будет реализовать при разработке:
- Функционал который будет парсить нужный тип предметов (их список выше) и обновлять их по команде в базу postgresql
- Поддержка двух языков загружаемых объектов: английский и русский (это все есть в базе)
- В том числе загружать изображения для объектов
- Какой-то элементарный веб интерфейс для тестирования результатов парсинга (просто чтобы можно было проверить работу функционала, все может быть “кривое” в плане верстки, позже использоваться это не будет)
Необходимые скилы:
- Python / django (либо любой другой удобный для вас стек, главное чтобы был налажен парсинг)
- postgresql - обязательно
- адекватное использование git хотя бы на уровне пуша в нужные ветки (фича/dev/master)
При разработке отвечу на любые вопросы и при необходимости составим более подробное ТЗ.
Сроки - гибкие, ориентировочно 1-2 недели, но можно и больше при необходимости.
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.