/ / Дали този уеб робот прави търсене с широчина или търсене в дълбочина? - java, web-crawler, търсене на ширина-първо, търсене на дълбочина-първо

Този уеб робот извършва ли търсене на първо място или търсене в дълбочина? - java, web-crawler, breadth-first-search, depth-first-search

Някой знае ли ако описаният тук уеб кроулер използва търсене на дълбочина или първо? Инстинктът ми казва, че това е първоначално търсене, но аз не съм 100% сигурен в това.

Също така, обичайно ли е уеб търсачът да използва тези начини за търсене (по-специално чрез рекурсия)?

Отговори:

2 за отговор № 1

Това е първоначално търсене. Забележете този код:

//get all links and recursively call the processPage method
Elements questions = doc.select("a[href]");
for(Element link: questions){
if(link.attr("href").contains("mit.edu"))
processPage(link.attr("abs:href"));
}

Този код ще рекурсивно изследва всички връзкиоткрити на страницата, като изцяло проучват първата връзка и всичко, което е достъпно, след това втората връзка и всичко, което е достъпно и т.н.

Това ще бъде наистина ли бавно, защото само една нишка правипроучване. Това вероятно ще бъде много по-ефикасно, ако бъде пренаписано като модифициран BFS, който поставя неизследвани страници в работен списък и има куп нишки, които грабват неизследвани страници и ги обработват.

Също така не е добра идея да използвате рекурсия, когатопроучване на уеб връзки. Лесно ще задушите стека на обажданията, ако се опитате да направите това, тъй като всеки достатъчно голям уебсайт ще има връзки, които се намират навсякъде.

Надявам се това да помогне!