Перейти к публикации
[ {"link":"https://topdeck.ru/apps/toptrade/member/32/promo/1", "image":"https://topdeck.ru/apps/toptrade/member/32/promo/1/image"}, {"link":"https://topdeck.ru/apps/toptrade/member/32/promo/2", "image":"https://topdeck.ru/apps/toptrade/member/32/promo/2/image"} ]

[CLOSED] Цены на карты по SCG в телеграме (@mtg_helper_bot)


gurugray
 Поделиться

Рекомендованные сообщения

StarCity умер, бот перестал фетчить данные — придётся подождать :(

А мне задача на обработать такой кейс :\

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 260
  • Создано
  • Последний ответ

Наиболее активные участники

Дни наивысшей активности

update — всё работает в штатном режиме

Ссылка на комментарий
Поделиться на других сайтах

В 19.01.2018 в 12:20, gurugray сказал:

Бот написан на nodejs. Я использую только ту информацию, которая не закрыта капчей и не обфусцирована для парсинга, потому такой проблемы нет, но есть соответствующие ограничения ;)

Так на старсити цена же обфусцирована. У меня знаний не хватило распарсить цену. Она вроде из картинок с цифрами формируется. Картинки всегда по разному называются.

Я тоже писал МТГ бота. Кроме функции поиска карт, делал возможность сформировать бустер по заданному сету с возможностью сделать первый пик, и хотел чтобы потом выводилась информация по каждой карте в бустере, сколько пользователей ее пикнули.

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

Ссылка на комментарий
Поделиться на других сайтах

20 часов назад, 42ia сказал:

Так на старсити цена же обфусцирована.

Не вся, именно её я и использую :)

 

20 часов назад, 42ia сказал:

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

с репринтами в текущем стандарте вроде бот справляется, с остальными сложнее всё по тем же причинам отсутствия самих цен :(

а по поводу — клик перезапрос на карту telegram пока не умеет это в api

Ссылка на комментарий
Поделиться на других сайтах

UP: Сегодня чудит Telegram API — не работают отправки сообщений — ждём починки :(

Ссылка на комментарий
Поделиться на других сайтах

UP: пофиксил хаками библиотеку, видом после апдейта API 13 февраля она с ним не дружит.

Сейчас бот работает в штатном режиме — если что пишите ;)

Ссылка на комментарий
Поделиться на других сайтах

UP: добавил Masters 25 для удобства просмотра цен (из особенностей в поисковой индекс попадает не сразу, так что лучше смотреть листом)

Ссылка на комментарий
Поделиться на других сайтах

А в каком режиме бот получает цены с сетей? При каждом поиске делает запрос за ценой или есть какой-то кэш?

Ссылка на комментарий
Поделиться на других сайтах

скрипт качает цены вне зависимости от запросов, чтобы кеш прогревался для всех пользователей

Ссылка на комментарий
Поделиться на других сайтах

Если база цен составляется заранее, то в теории можно весь SCG спарсить.

Загружаем страницу через Selenium или Splash, получаем кусок изображения страницы с ценой, передаем изображение цены в OCR и получаем готовую цену числом.

Может, как-нить запарюсь, если время будет.

Изменено пользователем Altimit
Ссылка на комментарий
Поделиться на других сайтах

Это не очень годная теория вот почему:

— выгружать всю базу через Selenium+OCR довольно долго и чревато ошибками распознавания (а снижение доверия к ценам — потеря смысла в самой функциональности)

— пройти капчу, а меня сейчас почти с каждого запроса просят её пройти если я делаю поиск, а автоматизировать проход капчи не совсем легально и очень муторно (не стоит вложеных усилий)

Ссылка на комментарий
Поделиться на других сайтах

Если на карту скидка, то какую цену бот отображает, со скидкой или без?

Как отображается знание бота о распродаже?

Изменено пользователем Largo
Ссылка на комментарий
Поделиться на других сайтах

Если на карту есть скидка — то отображается цена сразу со скидкой, при этом она помечена звёдочкой.

Ссылка на комментарий
Поделиться на других сайтах

3 часа назад, gurugray сказал:

Это не очень годная теория вот почему:

— выгружать всю базу через Selenium+OCR довольно долго и чревато ошибками распознавания (а снижение доверия к ценам — потеря смысла в самой функциональности)

— пройти капчу, а меня сейчас почти с каждого запроса просят её пройти если я делаю поиск, а автоматизировать проход капчи не совсем легально и очень муторно (не стоит вложеных усилий)

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

Касетльно времени парсинга и капчи, то используя поиск - да, будет долго и с капчей. Но можно же ходить через листинг: Store -> Выбираем сет -> проходим от 5 до 9 страничек. Там на всю базу страниц 1000 наберется суммарно. Это даже если ходить раз в минуту, должно спарситься меньше, чем за сутки.

 

Ссылка на комментарий
Поделиться на других сайтах

мне больше импонирует идея отреверсить обфускацию, тогда время и ресурсы на парсинг должно сократиться на порядок, а с OCR только в качестве упражнения можно :)

Ссылка на комментарий
Поделиться на других сайтах

Обфускация у них заключается в следующем:

Есть много картинок, содержащих 10 символов цифр в случайном порядке и точку, например price_icons_big.php?id=9Xwn4vZvXAYBEmO-I Далее для каждой цифры ценника они через css указывают от какой картинки какой блок (цифру) взять для отображения. И показывают кусок этой картинки с соответсвующим числом.

Чтобы решить эту задачу без OCR, надо составить базу всех таких картинок и порядок цифр на них. Но если они дошли до такого безобразия, то, наверняка, эти картинки они генерируют на лету.

Так что если метод генерации не вшит в id картинки, без OCR это никак не разобрать.

Ссылка на комментарий
Поделиться на других сайтах

Да я уже разбирал как сделано.

По сути осталось понять генерацию ключа, я вот тоже остановился на этом, дальше времени не хватило :)

Вообще есть такой исходник https://github.com/harmonicradius/diyScgApi

Планирую поизучать его на досуге

Ссылка на комментарий
Поделиться на других сайтах

UP: добавил сет «потеряшку» Iconic Masters — /price #ima (в меню тоже есть кнопка)

Ссылка на комментарий
Поделиться на других сайтах

Пока я болею — слегла машинка с ботом, из-за того что проект на чистом энтузиазме — мониторинги (на той же машинке) тоже слегли :\

Бота вылечил — машинку переподнял, но вы если что не стесняйтесь в тему писать о проблемах — ибо только по статистике я и заметил неладное :)

Ссылка на комментарий
Поделиться на других сайтах

UP: добавил Доминарию для удобства просмотра цен (из особенностей в поисковой индекс попадает не сразу, так что лучше смотреть листом)

Ссылка на комментарий
Поделиться на других сайтах

UP: Доминария теперь в полном составе в поисковом индексе и переведены все карты сета после полного спойлера. Картинки появятся только после апдейта geterer'а.

Ссылка на комментарий
Поделиться на других сайтах

@gurugray Бот пострадал от работы Роскомнадзора. Есть планы по восстановлению работы?

Ссылка на комментарий
Поделиться на других сайтах

Ну, по идее, его можно перехостить куда-нибудь

Ссылка на комментарий
Поделиться на других сайтах

Бот работает в штатном режиме, часть дня лежал сам старсити.

На текущий момент бот хостится там где доступы есть.

 

@Altimit а как выглядит проблема?

Изменено пользователем gurugray
Ситакс
Ссылка на комментарий
Поделиться на других сайтах

1 час назад, gurugray сказал:

 

@Altimit а как выглядит проблема?

Она все еще есть. После ввода слова (если нужны логи, я тестирую на слове "изыск"), сообщение помечается как прочитанное, статус меняется на Telegram%2B%25288393%2529%2B2018-04-16%2B22.29.07.png?Expires=1523986257&Signature=JrBNRAK7w8PM5T5zJUcfmn3lYx~kWnchuieemEaUyB-qxq3YEwzMVOBFilDACOsNwfRpPQ3e-BEy9IES~ThbiZI3qTuVZh0kEvcUuNFWKfi6HlnhaXsC27X2cu1Xc~Zb4ZW1CQQDavhl-HuNSp6qiNijIBy~DUCMz86jWONtSesaja4I~b9s9G8JUwb54iy4AYBQ8rWYMbZFBgoQW3gY9VZ0H8ctlQuyA45MkRvmBNtIhNrnjf2LGxvFc-UM0~2CJ5Cuh7JsH4vGBX9Tqt8sRV4HLCsiWsx48PB6HLGO-Wp4nVc7oOAXM12t89uxV0m4Qz7rTDlYSCCSyVTBWefqow__&Key-Pair-Id=APKAJHEJJBIZWFB73RSA секунд на 8. И все.

Вот видео http://take.ms/cPWFF

 

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...