MK-PL / OLX-RSS

Generator kanałów RSS dla portalu OLX.pl, który pozwala na spersonalizowanie wszystkich parametrów wyszukiwania.
15 stars 4 forks source link

Powtarzające sie oferty #1

Closed fakk3 closed 5 years ago

fakk3 commented 6 years ago

Przy wyszukiwaniu ofert, które nie są zbyt popularne rss działa dobrze. Natomiast przy wpisaniu słowa bardzo popularnego rss wysyła wkółko te same oferty. Nie wiem na czym polega problem, ale można wpisać np. w grach i konsolach słowo "Fallout" i rss wysyła wkółko to samo. Często są to wiadomości z poprzedniego dnia bez tytułu, z ceną i miastem.

MK-PL commented 6 years ago

Dziękuję za zgłoszenie.

Sprawdzałem skrypt z odnośnikiem https://www.olx.pl/elektronika/gry-konsole/q-Fallout/ i zauważyłem, że w przypadku ofert promowanych (czyli wyróżnionych), nie były one poprawnie wyświetlane w kanale RSS - poprawiłem to. Jako czytnika RSS używam programu Mozilla Thunderbird i raz pobrane oferty mi się nie pobierają ponownie - może to jest kwestia użytego czytnika?

fakk3 commented 6 years ago

Ja używam programu Feed Notifier. Niestety przy wyszukiwaniu np. wyrażenia Pegasus w konsolach i elektronice dostaje powiadomienia np. z poprzedniego dnia.

MK-PL commented 6 years ago

W programie Feed Notifier jest opcja Caching, Pop-up History. Domyślnie ta wartość jest ustawiona na 1, więc po dniu prawdopodobnie czyści się cache i pojawiają się powiadomienia z poprzedniego dnia.

fakk3 commented 6 years ago

Zmieniłem w czytniku pop-up na 7 dni i jeszcze raz zasubskrybowałem wyszukiwanie. Minęło 20 minut i wyrzuciło mi oferty z 26 i 25 kwietnia. Nie mam pojęcia dlaczego.

MK-PL commented 6 years ago

Posprawdzałem generator z ogłoszeniami, gdzie jest więcej wyników z ofertami i u mnie też zaczynają się pojawiać ponownie starsze oferty. Te starsze oferty to są oferty, które były na pierwszej stronie z wynikami i po pojawieniu się nowych, trafiają na drugą stronę z wynikami. Z jakiegoś powodu generator uwzględnia je jako nowe. Możliwe, że jest to spowodowane brakiem znacznika GUID w kanale RSS.

Podmieniłem generator kanałów RSS na inny (https://github.com/bhaktaraz/php-rss-generator), który umożliwia ustawienie tego znacznika GUID i stworzyłem osobną, testową gałąź pt. 'dev' - dostępna jest tutaj (https://github.com/MK-PL/OLX-RSS/tree/dev). Możesz ściągnąć i wypróbować, czy ten problem dalej występuje.

Inne rozwiązanie, to w 28 linijce pliku /src/get.php jest zadeklarowana zmienna $numberOfPages = 2; Możesz ją ustawić na $numberOfPages = 1; Wtedy będziesz miał mniej wyników w kanale RSS, ale problem z powtarzającymi się ofertami nie powinien już występować.

fakk3 commented 6 years ago

Póki co używam https://github.com/MK-PL/OLX-RSS/tree/dev i wyświetla mi oferty z danego dnia, ale pojawiają się pojedyncze oferty sprzed kilku godzin. Mimo to wydaję się, że działa to lepiej, bo imija oferty z poprzedniego dnia. Pytanie czy obserwując rss całej kategorii da się ominąć wyświetlanie ofert po pierwszej ofercie z poprzedniej aktualizacji kanału? Rozumiem, że skrypt wczytuje oferty z dwóch ostatnich stron olx, ale przez to z każdą aktualizacją dostaję oferty nowe + te stare, które znajdowały się na drugiej stronie kategorii, którą obserwuję.

MK-PL commented 6 years ago

Jeszcze trochę potestowałem skrypt i okazuje się, że oferty się powtarzają, ponieważ mają różne odnośniki, gdy najpierw są na pierwszej podstronie z wynikami, a potem przeskakują na drugą podstronę np: https://www.olx.pl/oferta/fallout-new-vegas-ps3-CID99-IDs10Tf.html#df39642e69 https://www.olx.pl/oferta/fallout-new-vegas-ps3-CID99-IDs10Tf.html#4de42e8099

Na szczęście modyfikuje się wyłącznie zawartość po hashu, a nie jest ona potrzebna, żeby odnośnik dalej przekierowywał użytkownika na podstronę oferty. Dopisałem więc odpowiednią instrukcję w kodzie, żeby tę zawartość po hashu usuwać z odnośnika w kanale RSS. Dzięki temu oferty nie powinny się już powtarzać. Zmianę na razie wprowadziłem w gałęzi dev: https://github.com/MK-PL/OLX-RSS/tree/dev. Jak będzie działać ok, to zaktualizuję gałąź master.

Pytanie czy obserwując rss całej kategorii da się ominąć wyświetlanie ofert po pierwszej ofercie z poprzedniej aktualizacji kanału? To kwestia ustawień czytnika - standardowo powinna być opcja 'przeczytane' + plus zakładając, że powyższa poprawka wyeliminuje problem powtarzających się ofert.