Авторизация
Зарегистрироваться

Приложения отслеживания цен на товары.

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

Периодически тыкать F5 мне надоело, а функции информирования о снижении цены есть не во всех магазинах, а в некоторых, в которых есть, работают неудобно, криво или не стабильно.

Поэтому я решил скачать какое-нибудь приложение на компьютер, которое само время от времени смотрит цену на мой список товаров в разных магазинах и сообщает мне о её снижении…





Но ничего подходящего я не нашёл. Может плохо искал.

Да, есть куча онлайн сервисов, которые чем-то подобным занимаются. Но они все платные (по крайней мере те, которые я нашёл), да и мне хотелось именно локальное приложение, чтобы оно просто замигало в районе часиков операционной системы, когда цена снизилась до приемлемого мне уровня.

Но раз такого нет, сделаем сами.

Чё там сложного. Скачать html-ку, поискать ключевые теги, выдрать из них цену, название товара, ссылку на картинку, скачать по этой ссылке саму картинку, засунуть это в базу данных, и периодически дёргать ссылки из этой базы, сравнивая текущую цену и сохранённую.

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

Какие-то магазины без проблем отдавали всю информацию, а какие-то упёрлись рогами, типа вы робот.

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

Нет, я понимаю, когда запросы идут слишком часто, это перегружает сервер. Но тут просто один единственный запрос за всё время существования Вселенной, и он был отклонён. Это ж маразм.

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

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

В общем обойти это оказалось не просто, но у меня, вроде как, получилось.

В результате родилось такое приложение.


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

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

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

При добавлении новой ссылки, она на лету проверяется на наличие в списке.

Когда мини-браузер не используется, вместо него отображается график истории цены товара:


Когда интерфейс приложения не используется, оно сворачивается в трей Windows (возле часов) и живёт там тихо и спокойно, периодически опрашивая страницы сохранённых товаров и начиная радостно мигать, когда цена снизилась, или отсутствующий товар появился в продаже.

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

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

Двойным кликом по ней можно перейти в браузер и купить товар. Либо сбросить событие и ожидать нового.

На данный момент реализована поддержка следующих площадок: AliExpress, Avito, DNS, Eldorado, Onlinetrade, Ozon, Vseinstrumenti.

Почти всех тех, которыми я пользуюсь.

Большинство сайтов добавлялось легко. У Озона только есть особенность в ссылках на отсутствующие и присутствующие в продаже товары, пришлось немного подшаманить.

Mvideo мне не дался вообще, даже в браузере код страницы не даёт просмотреть. Ну и ладно, ему же хуже, меньше вероятность, что я там что-то куплю. С другой стороны, они с Эльдорадо уже практически срослись, даже программы лояльности объединили, а с Эльдорадовским сайтом проблем у меня не возникло, буду им пользоваться.

Другие сайты буду добавлять по мере необходимости.

Вообще я это приложение хотел разместить в открытом доступе — раз уже разработал, почему-бы не поделиться со всеми? Но у меня возникли некоторые сомнения в правовой стороне этого вопроса. Есть неплохая статья на эту тему: Парсинг — это законно?

Если коротко, то это как бы не незаконно, но есть некоторые нюансы при конкретном использовании подобных приложений, поэтому, пока решил отложить размещение, а вместо этого поинтересоваться у читателей-покупателей, а вы пользуетесь подобными приложениями, сервисами? Может быть, подобное уже есть, а я изобрёл очередное колесо?

Нет, я знаю, что помимо платных Интернет-сервисов отслеживания цен, ещё существуют бесплатные плагины к браузерам, у самого такой стоит. Но это тоже не совсем то. Во-первых, количество магазинов, которые он поддерживает, сильно ограничено. Во-вторых, удобство ведения этого отслеживания тоже сильно так себе. В-третьих, подобные плагины отслеживают товар, локально анализируя открытую пользователем страницу в браузере. Необязательно она должна быть открыта пользователем, который отслеживает этот товар, достаточно открытия её любым пользователем, у которого установлен этот плагин.

Это влечёт два момента. Положительный — снижается вероятность срабатывания анти-бот защиты сайта и соответственно нет необходимости в принятии мер против этой анти-бот защиты. Ведь данные подтягиваются не из централизованного сервера-парсера, который бомбит сайт магазина большим количеством запросов, а это относительно немногочисленные запросы с IP-адреса конкретного пользователя.
Ну и плюс страницу открывает обычный браузер, плагин просто потом забирает эти данные у браузера и на сайт магазина сам не лезет.
И даже если всё же там сработает анти-бот защита, и пользователю будет предложено ответить на несколько идиотских вопросов с картинками, то этим будет заниматься сам пользователь, а не разработчики плагина.

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

Второй отрицательный момент связан с тем, что в такой схеме нужен сервер (облако) для обмена этой информацией между пользователями плагина. А облака, как уже думаю стало понятно даже самым ярым их сторонникам, могут превращаться в тыкву в любой, самый неподходящий для пользователя момент. Особенно бесплатные облака. Впрочем, и платные тоже.

Поэтому мне хотелось чего-то локального, живущего в системе независимо от работы браузера и облаков.

А вы пользуетесь чем-то подобным? Чем? Как впечатления?
Добавить в избранное +21 +24
свернуть развернуть
Комментарии (24)
RSS
+
avatar
  • san_q
  • 01 ноября 2024, 00:14
+2
О-о-о! Спасибо! Нам такое надо.
+
avatar
  • faza380
  • 01 ноября 2024, 00:15
+3
Ааааа… где сама программа Ваша??? как попробовать???
+
avatar
+2
автор показал, но не дал. заигрывает… интригует…
+
avatar
  • faza380
  • 01 ноября 2024, 00:30
0
Эххх… а я то уже собрался «тестить»… :-(
+
avatar
  • power
  • 01 ноября 2024, 00:15
+2
плагин alitools?
+
avatar
+1
What about amazon, ebay and other .com webpages?
+
avatar
-1
Do you speak Russian?
+
avatar
0
Is it so important to answer her or his question?)
+
avatar
0
Да, на рабочем ПК нет рус.языка
+
avatar
0
esta bien comandante
+
avatar
+5
« Это смутно мне напоминает Индо-пакистанский инцидент»
Конечно же, я хотел сказать, что ТС полунамёками мониторит интерес публики с целью решить размер монетизации приложения. Заинтересуются — ценник повыше выставит, не заинтересуются — придержит до лучших времён))
+
avatar
0
при необходимости, можно залогиниться, чтобы цена была для авторизованного пользователя. Впрочем, это и не обязательно, если важен процесс изменения этой цены, а не её точное абсолютное значение.
Не согласен. В зависимости от адреса доставки тот же али будет корректировать цену, если пользователь залогинен. Иначе будет цена, которая не даст ничего пользователю
+
avatar
+1
Если коротко, то это как бы не незаконно
Поскольку это одно из направлений моей деятельности, то я разбирался и ответ и юристов и мой — все, что есть в открытом доступе парсить законно! И никто ничего с этим сделать не может.

Что до приложения — хорошо бы в настройках иметь возможность править xpath (ну или regexp, если совсем просто) для парсинга цены и названия. Тогда самим можно добавлять новые площадки.

Кроме того, если сделать возможность указывать url на REST для обмена с ценами, то можно запускать собственный пиринговый обмен с ценами с любым облачным диском или сервисом.

Ну а по хорошему нужно делать сервис на headless и к нему веб ui, но это куда сложнее.
+
avatar
+2
Когда-то хотел купить паяльник-шишку, которого не было неделями в доступе, то накидал в баше скрипт, который проверяет по урл поле цены, и когда оно изменилось, делает бип-бип.
Тогда продолбался пол часа. сегодня чатжпт это сделает если ей скормить первую часть моего коментария.
+
avatar
+1
Тут какая штука,
Сгенерит абракадабру, но не факт, что рабочую. Если понимать, то можно поправить. Но если чел не понимает, то и не поправит.
Вторая проблема — знать как правильно поставить задачу. Не программисту будет сложно это сделать.
+
avatar
  • CuMr
  • 01 ноября 2024, 03:59
0
нужно просто понимать что это очень продвинутый автокомплит и понимать что оно понаписало — необходимо. зато время экономит просто фантастически.
я вот ради интереса нагенерил питон-скрипт отслеживания цены на али с отчетами в телегу, хранением базы товаров в sqlite, добавлением товаров в базу без перезапуска мониторинга и начальным тестированием урла за минут десять из которых пять дожидался вывода.
работает без ручных правок.
+
avatar
+3
как долго больше всего вы ждали приемлемой скидки?
у меня вот если висит что-то во вкладках больше недели — это или нафиг не нужная вещь и можно смело удалять, или будет куплено безотносительно скидок.
+
avatar
0
В нашей стране докопаться могут и до столба. Однако, по букве и по духу закона парсинг общедоступных данных ничего не нарушает. А цены магазина — это вообще публичная оферта, есть полное право с ней знакомится любым способом, включая применение технических средств и т.п.
Запрет парсинга по сути аналогичен запрету фотографировать в оффлайн-магазине… полный бред, чушь и самодурство безграмотных недоработников.
+
avatar
0
Слева скрин, справа мини-браузер, в котором открывается страница товара, и в котором, при необходимости, можно залогиниться, чтобы цена была для авторизованного пользователя.
проблема в том, что в отличие от полноценного браузера из системы, этому приложению нету никакого доверия. и доказать что оно не будет делать что-то по указке извне, или куда-то заботливо передавать накопленные данные — нетривиально, очень затратно и в целом технически нерешаемо.

AliExpress
и как оно работать будет? там же по нескольку лотов по одной ссылке обычно. откуда берется магическая sku_id как на картинке?
+
avatar
  • CuMr
  • 01 ноября 2024, 04:01
0
и доказать что оно не будет делать что-то по указке извне, или куда-то заботливо передавать накопленные данные — нетривиально, очень затратно и в целом технически нерешаемо.
есть такая штука, фаервол называется. открываем этому поделию доступ только на сайты магазинов, и… и всё, собственно.
+
avatar
0
Давайте программу, будем тестировать :)
+
avatar
  • Nastiaa
  • 01 ноября 2024, 03:53
0
Да ничего он не написал. Мечты несбывшиеся…
+
avatar
  • l1bbcsg
  • 01 ноября 2024, 03:58
0
Какие-то магазины без проблем отдавали всю информацию, а какие-то упёрлись рогами, типа вы робот.
Юзерагент, ориджин скорее всего левые и кук не хвататет. Может какие-нибудь второстепенные факторы типа размеров окна или специфичных для вебвью апи.
Сейчас многие сайты так заигрались с этими защитами что даже в инкогнито, или в не самых популярных браузерах не работают.

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.