maniekstasz / OfferSeeker

Other
0 stars 0 forks source link

Moduł WebSpider #11

Closed konik32 closed 10 years ago

konik32 commented 10 years ago

@worldofpiesels @marcibak jest do napisania nowy moduł WebSpider polegający na znalezieniu wszystkich linków w zadanej domenie np. gumtree.pl. Moduł za każdym jego wywołaniem powinien zwracać ograniczoną liczbę linków w danej kategorii(np wszystkie linki z 10 pierwszych stron) pomijać linki zwrócone w poprzednich wywołaniach. Wpisałem w google webspider java i pierwsze co mi wyskoczyło to crawler4j. Na pierwszy rzut oka, żeby napisać ten moduł trzeba tylko dobrze skonfigurować tego crawlera. Kto z Was by to napisał?

gkostalkowicz commented 10 years ago

Żeby była pewność że się dobrze rozumiemy :) Ma to działać w ten sposób?

Przykładowe wejście (dostaliśmy 3 strony do przejrzenia) http://www.gumtree.pl/fp-pokoje-do-wynajecia/c9000 http://www.gumtree.pl/fp-pokoje-do-wynajecia/c9000?Page=2 http://www.gumtree.pl/fp-pokoje-do-wynajecia/c9000?Page=3

Przykładowe wyjście (czyli wypisujemy WSZYSTKIE linki z danego adresu, np. linki z nagłówka strony, stopki, albo ogłoszenia) http://www.gumtree.pl/ http://www.gumtree.pl/c-SelectCategory http://www.gumtree.pl/c-DealerDirectory http://www.gumtree.pl/fp-pokoje-do-wynajecia/krak%C3%B3w/c9000 http://www.gumtree.pl/fp-pokoje-do-wynajecia/warszawa/c9000 http://www.gumtree.pl/cp-pokoje-do-wynajecia/poznan/atrakcyjny-pokoj-dwuosobowy-poznan-osiedle-sobieskiego-piatkowo-611743421?featuredAd=true http://www.gumtree.pl/cp-pokoje-do-wynajecia/poznan/wynajme-2-pokoje-pokoj-dzienny-stary-rynek-612369395?featuredAd=true (i wszystkie pozostałe...)

bambalooon commented 10 years ago

Nie. Dostajecie link: gumtree.pl - i macie przy każdym wywołaniu zwracać określoną liczbę nowych stron.

gkostalkowicz commented 10 years ago

1) Wciąż nie wiem - czy ten moduł ma być w jakikolwiek sposób inteligentny, czy nie. Tzn. ma rozróżniać linki z ogłoszeniami od linków z nagłówka lub ze stopki? Czy ma po prostu zwracać każdy link na który się natknie? @konik32 napisałeś że mają to być linki z danej kategorii (dostajemy link do kategorii) @bambalooon napisałeś że dostajemy link np. do strony głównej.

2) Gdzie możemy przechować informację o odwiedzonych linkach-w bazie?

ghost commented 10 years ago

@up - Dostajecie link do jakiegoś serwisu. Może to być nawet google.com. Obojętne. Macie to jakoś przeszukać i na każde zawołanie serwera zwrócić ileś tam linków, których serwer jeszcze nie posiada. Nie dbajcie o to czy to będzie link do reklamy, wydarzenia, pogody czy ogłoszenia. Ważne jest tylko to, żeby ten link odnosił się do treści pisanej np. mam namyśli coś HTMLowego (a nie np. reklamy z filmem video, bo nam to nie potrzebne i nie obsłużymy tego).

bambalooon commented 10 years ago

Tak jak napisał @bartQH . Możecie poznać to np. po rozszerzeniu - html, php, itd. Lub zaglądając w nagłówek HTTP.

gkostalkowicz commented 10 years ago

Rozmawialiśmy już z @konik32 i znam szczegóły. Podzielę się pierwszymi wrażeniami, bo przez jakiś czas to rozkminiałem.

Stworzenie prostego crawlera nie jest jakąś wielką rzeczą. Dużo większy problem jest z ograniczaniem liczby linków z każdej kategorii (np. po 10 stron albo 100 najnowszych ogłoszeń z każdej kategorii, np. "Wynajmę"). Wtedy z definicji crawler staje się inteligentny i musi umieć nawigować po kategoriach stron których nie zna. Możliwe proste rozwiązania tego problemu:

Nie mówię, że nie jest to do zrobienia ale nie wiem czy uda mi się wymyślić porządne rozwiązanie. @konik32 - na razie może być sztywno podpięte np. do gumtree?

konik32 commented 10 years ago

Tak

bambalooon commented 10 years ago

@worldofpiesels moim zdaniem nie ma takiej potrzeby, żebyście zwracali po 100 linków z różnych kategorii - wystarczy, że będą to nowe linki. Jeśli taki crawler będzie stosunkowo równolegle działał i odwiedzał wiele linków naraz z jednej strony to automatycznie, prawdopodobnie przejdzie po różnych kategoriach.