Strona do weryfikowania historii zmian ceny produktu w sklepach rtv/agd.

antypromocje
antypromocje

Ło... to tak to się robi ( ͡° ͜ʖ ͡°) Witam Mirki i Mirabelki, do tej pory pasywnie przeglądałem wykop, trafiłem tu z ciekawości, mniej więcej miesiąc przed aferą zbożową i od tego czasu stronę przeglądam regularnie. A teraz do sedna...


Stworzyłem stronę, którą chciałbym się ze społecznością podzielić, pracowałem nad nią ok. 11 miesięcy. Na co dzień pracuję w korpo, jako programista, ale daleko mi do programisty 15K. Web dev jest dla mnie czymś zupełnie nowym. 


Co robi ta strona? 

Można na niej znaleźć historię zmian cen produktów ze sklepów rtv/agd, a znajdziecie ją pod adresem antypromocje.pl. Czarny piątek to doskonały dzień na premierę tej strony.


Jak to działa?

Wystarczy wkleić link do danej karty produktu i nacisnąć wyszukaj.Jeżeli produkt zostanie odnaleziony, to generowany jest czytelny i prosty do odczytania wykres:

 ... jakoś nie jetem w stanie dodać obrazka...., no nic poglądowe ASCII graphics engage!!!


cena

^

|

|

|

|                                      |----------------|

|------+                +--------+                   +---------

|        |--------------|

|----------------------------------------------------------------> czas


Skąd masz dane?

Nie współpracuję ze sklepami, których historię cen można znaleźć na mojej stronie. Nie byłem, ani nie jestem ich pracownikiem. Nie mam dostępu do ich baz danych, ani bezpośredniego, ani za pośrednictwem API. Ceny uzyskuję na zasadzie parsowania strony internetowej. Dla nie wtajemniczonych: specjalny program czyta tekst strony, rozpoznaje jej zawartość i zapisuje dla mnie interesujące mnie fragmenty. Opis wydaje się prosty, ale to właśnie ta część zajęła mi najwięcej pracy. Praca tego programu zajmuje kilka godzin... Parser został napisany w Pythonie.


To jak to zrobiłeś?

Zacząłem skromnie, metodą prób i błędów, a zaczynałem od kodu js, używałem głównie jQuery bezpośrednio w konsoli przeglądarki. Kiedy dostrzegłem potencjał zacząłem budować parser w Pythonie. Początkowo wydawało mi się, że to będzie łatwiejsze do realizacji, jednak krok po kroku brnąłem dalej. Pomagały rady kolegi z pracy, pomysły oraz wsparcie techniczne. Dzięki! Następnie powstał walidator danych, również napisany w Pythonie. Błędem było pisanie wszystkiego samodzielnie... nie dostrzegałem potęgi NumPy. Kiedy to solidnie przetestowałem (metodyka - próby i błędy), zacząłem tworzyć stronę internetową. Dlaczego nie używałem UnitTestów. Większość parsera i walidatora jest stworzona w oparciu o funkcje, ze względu na oszczędność ramu. Parsowanie potrafi również potężnie obciążyć procesor... Multiprocessing też pomaga i to nie prawda, że w Pythonie go nie ma (⌐ ͡■ ͜ʖ ͡■). Wracając do tematu, strona powstałą w PHP. Tak, w PHP, to nie jest literówka :P Już raz wyłożyłem się na deploymencie Django, więc wolałem tego uniknąć. Na marginesie ten co wymyślił połączenie Django, Gunicorn, nginx... miał świetną fantazję. Generalnie konfiguracja tego nie należy do najłatwiejszych. Tamta strona nigdy nie ujrzała światłą dziennego...


Dlaczego to zrobiłeś?

Kiedyś postanowiłem sobie kupić golarkę, chodziłem po sklepach cały dzień. Ostatecznie wybrałem produkt ze sklepu nr 1. Kiedy wróciłem tam kolejnego dnia cena była już inna, wyższa. Był to grudzień, okres najgorętszych zakupów. Zostałem zapewniony, że cena jest taka sama od dłuższego czasu: "Panie, promocija na te trinkety!". Nowa cena nie odzwierciedlała jakości produktu. Wróciłem do domu bez golarki. Nie kupiłem po dziś dzień. Jednorazówki używane po kilka razy. Ekologia, ale niezbyt mocno...


Dlaczego nie usuniesz konta zielonko?

Siedzą na okrągłym taborecie, on nie ma żadnych kątów.


TL;DR

Zielonka z korpo, po rbocie, zrobiła stronę. Sprawdzanie historii cen radyj i innych komputrów - antypromocje.pl.