import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.*; import java.util.*; public class Veebiuuring1{ List uurimataAadressid=new ArrayList(); List uuritudAadressid=new ArrayList(); public Veebiuuring1(String algaadress){ uurimataAadressid.add(algaadress); } void uuri(){ while(uurimataAadressid.size()>0){ uuriAadress(uurimataAadressid.remove(0)); } } void uuriAadress(String aadress){ System.out.println("Uurib "+aadress); try{ Document doc=Jsoup.connect(aadress).get(); Elements links=doc.select("a[abs:href]"); for(Element link:links){ String uusAadress=link.attr("abs:href"); if(uuritudAadressid.contains(uusAadress) || uurimataAadressid.contains(uusAadress)){ System.out.println(uusAadress+" juba olemas"); } else { uurimataAadressid.add(uusAadress); System.out.println("Lisati "+uusAadress); } } }catch (Exception ex){ System.out.println("Kahtlane aadress: "+aadress); } uuritudAadressid.add(aadress); } public static void main(String[] arg) throws IOException{ Veebiuuring1 uuring1=new Veebiuuring1("http://www.tlu.ee/~jaagup/"); uuring1.uuri(); } } /** Siin olemas näide, kus etteantud aadressist hakatakse viiteid mööda edasi liikuma. Võimalikke arendusideid: * Uuritavate aadresside algusosa piiratakse (domeeni, masina või kataloogiga) * Uuritavate aadresside lõpuosa piiratakse (mingid faililaiendid, mida uuritakse või siis jälle mitte. * Iga aadressi kohta loetakse, mitu viidet läheb temast välja, mitu talle sisse. Pärast luuakse loetelu vastavate suuruste järgi. * Mingite sõnade otsing uuritavate lehtede hulgast. * Tekkinud aadressipuu failides esinevate sõnade sagedustabel. */