Wpis z mikrobloga

Nie mam kogo zapytać, może ktoś od #python coś mi poradzi. Pytanie może głupie, ale...

Próbuję napisać małe narządko, które będzie dla mnie przeglądało g2a.com i porównywało ceny z moimi predefiniowanymi progami ( ͡° ͜ʖ ͡°) Mam jednak problem z parsowaniem źródła strony, bo w źródle nie widzę ceny - jest parę wartości z "price" w nazwie, ale niewiele mają wspólnego z tym, co widzę finalnie w przeglądarce. Podejrzewam JS i jakieś przeliczenia między walutami, ale wygląda na to, że dla różnych gier a nawet ofert algorytm jest różny. Oni tak celowo? Czy to kwestia jakichś skryptów, które chodzą na tych wartościach? Nie żebym był ekspertem, ale zawsze sądziłem, że wszystko, co na witrynie "widzę", jest łatwiej lub trudniej do wyciągnięcia z kodu strony - czyżby tak nie było? ( ͡° ʖ̯ ͡°)

#naukaprogramowania #javascript #pytanie
kurp - Nie mam kogo zapytać, może ktoś od #python coś mi poradzi. Pytanie może głupie...

źródło: comment_o2tartxnlt42nPSjXB5erqcFHMsNJVk8.jpg

Pobierz
  • 12
@notanumber: Korzystałem kiedyś, ale BS chyba tylko pomaga w krojeniu i analizie źródła, a tu szukam raptem dwóch wartości (za łatwe, żeby ładować aż BS, użyłem po prostu string.find). Za to przydałoby się coś, co potrafi "wykonać kod", jak celnie zauważył @M4ks... ( ͡° ʖ̯ ͡°)
@PiTcA: Dzięki serdeczne, poszedłem faktycznie ścieżką Selenium. Wyglądało na linię najniższego oporu (łatwo dostępne i instalowalne narządko plus parę linijek kodu daje mi źródło strony w pożądanej formie) a ponadto uznałem, że zaprzyjaźnienie się z tym narzędziem może się jeszcze kiedyś przydać. Minus rozwiązania jest taki, że wynik skryptu dostaję dopiero po zmieleniu wszystkich stron w przeglądarce, co jest dość upierdliwe, zasobożerne, czasochłonne, nieeleganckie i nieeko ;) ale - działa
@kurp: Nie ma za co :) Ale o co chodzi z wynikiem skryptu? Możesz przecież wywoływać kilka instancji na raz, albo wrzucać wszystko na bieżąco do bazy danych :P Do selenium możesz też dorzucić ublocka, albo inne rozszerzenie (aczkolwiek wtedy dobrze pogrzebac w about:config i wyciagnac ustawienia juz skonfigurowanego rozszerzenia) - wtedy nie bedzie wczytywalo reklam, co nieco rpzyspieszy dzialanie na pewno :P
Ale o co chodzi z wynikiem skryptu?


@PiTcA: Może źle się wyraziłem. Skrypt wędruje strona po stronie i wypluwa po prostu wyniki do terminala - tu nie ma problemu, niczego więcej od niego nie oczekuję :) Chodzi tylko o to, że dotychczas skrypty, które parsowały dla mnie strony, chodziły jak rakiety, a teraz muszę tę chwilę zaczekać, zanim spadnie każdy kolejny wynik. W praktyce zapuszczam, gdy udaję się gdzieś z dala
@kurp: Ale korzystasz z phantomjs? :) Bo działą na pewno szybciej niż firefox/chrome, a do tego nie musisz się martwić tym, że sobie gdzieś coś klikasz :P
@PiTcA: Niet. Podnoszę i składam Firefoxa, aż mi żarówka w pokoju przygasa ( ͡° ͜ʖ ͡°)

PhantomJS robił mi jakieś problemy przy instalacji. Jak przejrzałem logi, to się okazało, że nie lubi się z moją wersją Pythona (dla większości moich zastosowań wersja nie ma znaczenia, więc akurat mam chyba domyślną dla dystrybucji 2.7). Jak go jednak odpaliłem, to coś ciągle się sypało.

Próbowałem przesiąść się na Ghost
@kurp: Ale phantomjs chyba nie powinien miec nic do wersji pythona. Takze cos mi sie wydaje, ze za bardzo kombinujesz :P Ja z tego co kojarze wrzucalem binarke w path i w selenium podawalem jako silnik phantomjs i smigalo. Aczkolwiek tylko raz z tego korzystalem :P