Wpis z mikrobloga

#scraping #programowanie #frontend #backend

Siema, piszę sobie scrapera pod oferty pracy OLX i natrafiłem na coś ciekawego.
Scraper biega sobie po każdej kategorii, ściąga dane, zapisuje do bazy, klika następną stronę i tak w kółko...
Zauważyłem, że np. w kategorii Administracja Biurowa po pierwszych 50 stronach baza danych zaczyna mi wypluwać exceptiony związane z tym, że klucz główny (adres www oferty) już istnieje w bazie danych.
"No spoko" - pomyślałem. Pewnie jakieś oferty są "promowane" za pieniądze i stąd te powtórki.
No to sobie zrobiłem prostego printa, żeby dla każdej zescrapowanej strony wyświetlało mi tzw. sukcesy (nowe rekordy w bazie).
Ku mojemu zdziwieniu okazało się, że po osiągnięciu 50 strony prawie każda kolejna nie miała żadnych nowych rekordów (stron w tej kategorii jest 134 w tym momencie).

Spróbowałem więc manualnie:
wszedłem na stronę OLX, kategoria Administracja Biurowa, klikam na ostanią możliwą stronę...Nie znaleźliśmy ogłoszeń dla tego zapytania.

Czy ktoś może potwiedzić, że u niego jest to samo?
Myślicie, że robią to specjalnie, żeby podbić statystyki (fajniej wygląda, że mamy 134 strony ogłoszeń, niż tylko 50) czy to zwyczajny bug?

Ta sama rzecz dzieje się również na innych kategoriach np. Budowa / remonty i inne
Wklejam linka do logów ze scrapera: https://pastebin.com/y4YMa9is
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Glowacki92: ej, ale ja umiem się poruszać po stronach www :)

Tak, wszystko wskazuje na to, że jestem na stronie nr 134. I nie ważne, czy klikam z paginacji, czy wklejam link, czy klikam link, zawsze mam całą stronę ogłoszeń.
  • Odpowiedz
@Glowacki92: dobra, teraz pytanie czy tylko problem masz z tymi adresami, ktore podales i czy jak zaczniesz scrapowac od 50+ (czy ktora ci tam nie dziala) to beda problemy, czy nie. I zawsze mozesz trzymac adresy gdzies w arrayu i porownywac z podanymi zanim dodasz do bazy zeby sprawdzac czy i jesli tak - ktore sie powtarzaja
  • Odpowiedz
@techko: w sumie nie próbowałem odwrócić kolejności. Mógłbym zacząć od ostatniej i zobaczyć czy by to pomogło.
Co do arraya - w zasadzie to te exceptiony są handlowane i nie ma z nimi problemu, nie ma sensu dodatkowo trzymać w pamięci tylu encji skoro i tak baza je trzyma i porównuje na bieżąco.
Zastanawia mnie jedynie, że u innych nie występuje ten problem z "nieładowaniem" się ostatniej strony
  • Odpowiedz
@Glowacki92: a regulamin czytałeś ? :)

3. Ogólne warunki korzystania z Serwisu
13. Pobieranie lub wykorzystywanie w jakimkolwiek zakresie dostępnych w ramach Serwisu OLX materiałów wymaga każdorazowo zgody Grupy OLX i nie może naruszać postanowień Regulaminu oraz powszechnie obowiązującego prawa, jak również nie może naruszać interesów Grupy OLX. Zabronione jest jakiekolwiek agregowanie i przetwarzanie danych oraz innych informacji dostępnych w Serwisie OLX w celu ich dalszego udostępniania osobom trzecim w
  • Odpowiedz
przetwarzanie danych oraz innych informacji dostępnych w Serwisie OLX w celu ich dalszego udostępniania osobom trzecim w ramach innych serwisów internetowych jak i poza Internetem


@hammer404: no przecież op nie musi tego nikomu udostępniać ( ͡° ͜ʖ ͡°)
  • Odpowiedz