Java ile basit crawler örneği[Kaynak Kodu]

l0z

coder
Katılım
4 Ara 2015
Tepki puanı
11
Rating - 0%
Java'da yeniyim, ufak bir deneme yaptım, önümüzdeki günlerde Object Oriented bir biçimde ve unique linklerin hepsini alan ve hepsini ziyaret eden birtane paylaşıcam. Hala üzerinde çalışıyorum boş oldukça. ekstradan bir class daha yazıp test yapabilir hale getiricem. Kolay gelsin

Kod:
package com.l0z.crawlerv1;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.Arrays;
import org.jsoup.Connection;

/*****
 * 
 * @author l0z @ SpyHackerz
 *
 */

public class crawlIT {
    public static void main(String[] args) throws IOException {
        String url = "http://website.net/"; //denenecek websitenin adı
        final String USER_AGENT =
        "Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Ubuntu/10.10 Chromium/8.0.552.237 Chrome/8.0.552.237 Safari/534.10";       
        print("Bağlantı kuruluyor: %s...", url);
        Connection baglanti = Jsoup.connect(url).userAgent(USER_AGENT);
        Document doc = baglanti.get();
        if( baglanti.response().statusCode() == 200) // HTTP 200 alıyorsan devam et.
          {
           System.out.println("\n <Bağlantı kuruldu> ");
          }
       
        Elements links = doc.select("a[href]");
        Elements imports = doc.select("link[href]");

        print("\nLinkler: (%d)", links.size());
        for (Element link : links) {
            parseIT(link.attr("abs:href"));
           
        }
       
        print("\nİçe Aktarılan Veriler(css vb.): (%d)", imports.size());
        for (Element link : imports) {
            print(" * %s <%s> (%s)", link.tagName(),link.attr("abs:href"), link.attr("rel"));
        }
       
    }
   
 public static void parseIT(String string){
       
        String delims = "[/]+";
        String delims2 = "[.]+";
        String[] tokens = string.split(delims);
       
        if(tokens.length > 1){
            String[] tokens2 = tokens[1].split(delims2);
            if(Arrays.asList(tokens2).contains("websitelinkininkeywordu"))
            System.out.println(string);
        }
       
    }

    private static void print(String msg, Object... args) {
       
        System.out.println(String.format(msg, args));
    }
   
   

    private static String trim(String s, int uzunluk) {
        if (s.length() > uzunluk)
            return s.substring(0, uzunluk-1) + ".";
        else
            return s;
    }
}
 

l0z

coder
Katılım
4 Ara 2015
Tepki puanı
11
Rating - 0%
dmfm03.jpg


bu da yaptığım deneme
 

l0z

coder
Katılım
4 Ara 2015
Tepki puanı
11
Rating - 0%
önemli değil dostum, çalıştıramayanlar söylesin, executable halde paylaşmadım zaten kaynağından yararlanın diye, forumu takip edin bu aralar süper bi kaynak kod göndericem istediklerimi yapabilirsem, daha sonrası da spy'a hazırladığım programın parçası olarak forumda olacak ama o kaynak olmayacak. :)
 
131,550Konular
3,269,122Mesajlar
315,382Kullanıcılar
hasseninyoSon Üye
Üst Alt