Closed konik32 closed 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...)
Nie. Dostajecie link: gumtree.pl - i macie przy każdym wywołaniu zwracać określoną liczbę nowych stron.
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?
@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).
Tak jak napisał @bartQH . Możecie poznać to np. po rozszerzeniu - html, php, itd. Lub zaglądając w nagłówek HTTP.
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?
Tak
@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.
@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ł?