Skrypty wygrywające aukcje na allegro

0

Witam. Ostatnio natknąłem się na strony typu: snajper.net lub snip.pl.
Strony te licytują za nas aukcje, podbijając ofertę w ostatnich sekundach.
Ciekawy jestem, jak jest to rozwiązane od strony programowej.
Skrypt musi się zalogować na nasze konto na allegro (wcześniej podajemy hasło) oraz zalicytować w odpowiednim czasie.

Czy mógłby ktoś opisać po krótce jak to działa? W jakim języku można to sprawnie napisać (biblioteka cURL, a może Python, pojęcia nie mam...).

Nie chcę tworzyć takiej strony, bo jest już ich bardzo dużo, pozycje liderów podałem we wstępie, nowa strona nie ma szans.
Pytam tylko o kwestie czysto techniczne. W ilu liniach kodu można się zmieścić np. w logowaniu?

Z góry dziękuję za odpowiedź.
Jareq000

2

Widać, że ktoś nie zna się na działaniu aukcji Allegro. Biorąc udział w aukcji, wpisujesz maksymalną kwotę, jaką chcesz dać, a automat sam podbija cenę aż do tej ustalonej przez ciebie ceny. Podbicie w ostatniej chwili nic nie da, bo jeżeli ktoś oferował więcej, to Allegro podbija cenę automatycznie. Tak więc te strony, które wymieniłeś, służą najpewniej wyłudzaniu haseł.

0

Kolego... Nie masz racji. Wiem doskonale jak to działa. Ale każdy, kto trochę licytuje, wie już, że trzeba to robić jak najkrócej przed zakończeniem aukcji, tak, by inni nie zdążyli podbić. Jeżeli zrobi to za nas automat 3 sekundy przed końcem, nikt nie zdąży nas już przebić, wtedy jeżeli cena jest niższa niż zadeklarowaliśmy w skrypcie, aukcja jest nasza.

Uwierz mi, to działa. Tylko wg. mnie Allegro powinno takie praktyki zablokować. Np. taki szary człowieczek cieszy się, że dostanie rzecz za pół ceny, a tu automat 3 sekundy przed końcem przebija go o 2,50zł. No szału idzie dostać.

0

Kupowałem sporo rzeczy na aukcjach, więc wiem: aukcja np. książki zatrzymała się na 50 zł, a ja byłem gotowy zapłacić 100, więc wpisałem 100, a automat w moim imieniu podbijał cenę o 2,50 za każdym razem, gdy ktoś inny podbijał. Był taki moment, że w ciągu 1 sekundy pojawiło się 10 podbić, bo automat podbijał na zmianę dwóm użytkownikom, dopóki u jednego z nich nie osiągnięto maksimum.

0

No jeżeli zacznie korzystać z tego duża liczba osób, to tak już będzie. Ale robi się off-top. Mieliśmy pisać o kwestiach czysto technicznych, tzn. programowych.
Gdybyś ustawił sekundę przed czasem, nie byłoby takiego efektu, chyba, że inni też tak ustawili, choć wątpię w to. Wtedy przelicytowałbyś wszystkich jeden raz.
Za pomocą jakiego języka można to w miarę łatwo napisać?

3

@norbi452 autorowi chodzi o podbicie tak późno żeby inni licytujący nie mieli szansy zmienić już swojego "maksymalnego progu" ;)
W jakim języku? W pythonie. Albo w każdym innym ;]

1

http://allegro.pl/webapi/documentation.php
Można napisać to w większości języków przy czym w php się na pewno nie narobisz.
W javie i c# masz przyzwoite narzędzia do wsdl`ków.

0

Ok. A powiedzcie mi, gdybym nie posiadał oficjalnego API do serwisu (gdy powstawał jeden z serwisów, tak właśnie było), to ile czasu zajęłoby rozpracowanie np. właśnie logowania? Każdą komendę trzeba osobno rozpracowywać, czy można zrobić tak, by w "Okienku 1" wpisało "Text ABC" i kliknęło "Button 1".
Ogólnie, to jest to trudne do ogarnięcia?
Który język polecacie do nauki, by w przyszłości zajmować się takimi rzeczami?

2

Chwile pracowałem przy takim skrypcie co właśnie zbierał zamówienia od ludzi wystawiał aukcje na allegro i miał opcję właśnie snipera, większość rzeczy (prawie wszystko) szło przez api allegro. Jedyną rzeczą która wymagała zalogowania się była opcja "sugerowania kategorii po podaniu nazwy przedmiotu" bo nie było tego w api. Reszta szła przez api.
Klucz api dostaniesz praktycznie bez problemów.Nawet jeśli allegro blokuje requesty zbyt częste to jednak zawsze potem odwiesza blokadę :) (jeśli stało się tak przypadkowo że skrypty przekroczyły okresloną liczbę zapytań). To co było wkurzające to to że czasem dane z transakcji spływały do systemu z allegro po paru godzinach... (wina po stronie allegro). Zapytania idą w zasadzie przez SOAP/WDSL. nie logujesz się tradycyjnie tylko wypełniasz odpowiednio sformułowane zapytania do allegro i dostajesz wyniki w formie zwrotnej np tablicy z jakąś tam strukturą którą następnie obrabiasz (to akurat robilem w php ale mozna w czymkolwiek).

0

@Piotrekdp: Jak oceniasz złożoność twojego skryptu? Ile zawiera linii kodu? Ile czasu potrzeba, by napisać taki skrypt?

No i co w momencie, gdy nie posiadamy API danego serwisu? Tzn.:
Przypadek 1: Posiadamy dokumentację API, czyli piszemy program wysyłając requesty i odczytując je. Nie korzystamy w ogóle z przeglądarki, nawet nie musimy wiedzieć, jak wygląda strona.

Przypadek 2: Korzystamy z przeglądarki by odczytać nazwy pól (tzn. pole do wpisania nazwy użytkownika, hasła, button logujący), następnie piszemy skrypt, który wpisuje tekst w określone pole i klika zaloguj, tzn. skrypt, który robi wszystko dokładnie tak, jak zrobiłby to użytkownik.

Czy da się zrobić tak, jak w przypadku 2? Nie znając API utworzyć skrypt? Co wtedy trzeba uwzględnić przy pisaniu programu(nazwy pól, wartości pól, PHPSESSID, co jeszcze?)?

0

Nie jestem zbyt obeznany, ale raczej wątpię w "drugi przypadek". Wszystkie skrypty są wykonywane w chwili wejścia na stronę, jeżeli stronę się opuszcza, to skrypt przestaje działać. Skrypt z drugiego przypadku musiałby wchodzić na inną stronę, by wykonać tam kod. Można by ewentualnie otwierać tą nową stronę w nowej karcie, ale nie jestem do końca pewien, czy coś takiego można opanować w PHP czy Pythonie.

0

@norbi452: Ty czasem nie mylisz pojęć?
Mógłby ktoś wyjaśnić, czy @norbi452 ma racje? Wydawało mi się, że te skrypty o których mowa, to takie zewnętrzne programiki, nie chodzi mi tu o te doklejane do strony www (jak google adsense), ale być może przeceniłem stan mojej wiedzy i to ja mylę pojęcia... :(

0

To ja się Ciebie w takim razie o coś spytam: O jaki język ci chodzi? Języki typu PHP czy JavaScript nie mogą stanowić zewnętrznych programów, są to skrypty wykonywane przez strony WWW. Zewnętrzne programy wykonuje się najczęściej w Javie, C i C++.
Podczas gdy w skryptach np. PHP nie musisz pilnować, czy komputer jest połączony z Internetem (bo jeśli skrypt się wykonuje, to znaczy, że użytkownik wszedł na stronę), o tyle w zewnętrznych programach musisz także dopilnować, czy jest połączenie, oraz o tym informować, bo może się okazać, że twój program nie działa, ponieważ twój dostawca np. odciął ci internet.

0

Chodzi mi o takie języki, za pomocą których jestem w stanie możliwie najszybciej/najprościej/najlepiej zrealizować projekt.
Dlatego proszę, jeżeli już piszemy, to piszmy to, co coś wniesie do tematu, np. jakieś konkretne propozycje, jak podali: @Piotrekdp, @galleanv, czy @Shalom i chwała im za to.
Może jeszcze ktoś zgłębiał ten temat i jest w stanie pomóc początkującemu programiście.

0

Przypadek 2 porównał bym do operowania na otwartym sercu w rękawicach bokserskich. Może się da, ale coś tu nie halo. Jeśli serwis nie udostępnia API to trzeba parsować HTML, żeby wydobyć z niego jakieś info, jeśli layout się zmieni bardzo prawdopodobne, że program będzie trzeba naprawiać. Do komunikacji nie używa się przeglądarki i "klikania" czy też udawania użytkownika. Wysyła się żądania HTTP do tego warto dowiedzieć się na jakiej zasadzie działa protokół HTTP. Co wysłać w danych formularza można wyczytać z pól w kodzie HTML lub podsłuchać komunikację przez np. sniffer HTTP czy wtyczki developerskie do przeglądarek śledzące requesty. Co do języka - nadaje się każdy, który pozwala na komunikację po HTTP. Przykład w delphi Obsługa protokołu HTTP przy użyciu pakietu Synapse to tylko przykład.

0

Gdzieś w regulaminie allegro zabrania wysyłać requestów inaczej, niż klikając w stronę, tak więc wszelkie parsowanie strony, emulacja klikania i inne takie mogą się skończyć zablokowaniem konta, jak zostaną wykryte. A jeżeli allegro śledzi nienormalne zachowania, to raczej nie jest to problem. Ale żeby było łatwiej można skorzystać z WebAPI. Ostatnio zmienił się regulamin i otrzymanie klucza jest (chyba) obligatoryjne. Jest cała instancja testowa, na której możesz sobie ćwiczyć co tam chcesz. Tak więc nie widzę powodu, dla którego byś tego nie miał użyć. Jak się na tym nie znasz, to się zapoznasz. Tutoriali w sieci trochę jest. Do wyboru język PHP, jak chcesz to mieć na stronie, albo Java, jak ma to być tylko dla ciebie. (Innych nie znalazłem, ale też nie szukałem, pewnie C# też jest opisany).
Teraz tylko wybierz w czym to chcesz zrobić i gotowe.
Poza tym, że pomysł uważam za mało przydatny, aukcję można sobie kliknąć samemu 5 sekund przed końcem.

2
norbi452 napisał(a):

Widać, że ktoś nie zna się na działaniu aukcji Allegro. Biorąc udział w aukcji, wpisujesz maksymalną kwotę, jaką chcesz dać, a automat sam podbija cenę aż do tej ustalonej przez ciebie ceny. Podbicie w ostatniej chwili nic nie da, bo jeżeli ktoś oferował więcej, to Allegro podbija cenę automatycznie. Tak więc te strony, które wymieniłeś, służą najpewniej wyłudzaniu haseł.

Tak, na pewno istniejące od dziesięciu lat serwisy z tysiącami zadowolonych klientów służą wyłudzaniu haseł. :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.