• 07-10-2013, 17:12:18
    #1
    Basit bir arama motoru orumcegi gosterecegim. Mantik ve kodlama cok basit.

    Programlama dili: Python

    import urlparse
    import urllib
    from bs4 import BeautifulSoup
    
    url = "http://www.huup.com"
    
    urls = [url]
    visited = [url]
    
    while len(urls) >0:
        try:
            htmltext = urllib.urlopen(urls[0]).read()
        except:
            print urls[0]
        soup = BeautifulSoup(htmltext)
    
        urls.pop(0)
    
        for tag in soup.findAll('a', href=True):
            tag['href'] = urlparse.urljoin(url,tag['href'])
            if url in tag['href'] and tag['href'] not in visited:
                urls.append(tag['href'])
                visited.append(tag['href'])
    
        #baslik
        print "Title: " + soup.title.string
    
        #aciklama
        for link in soup("meta", {"name":"description"}):
            print "Description: " + link['content']
    Ciktisi su sekilde olacaktir;


    Bu sekilde kendi orumceginizi olusturabilir internet sitelerini kolayca tarayabilirsiniz. Tek yapilmasi gereken bu basit orumcegi kendinize gore biraz gelistirmek.

    Guncellenme: Site adresine girer ve o sayfadaki tum urlleri ziyaret eder ziyaret edilen sayfalarin baslik ve aciklamalarini listeler.
  • 09-10-2013, 01:47:51
    #2
    Guncelleme yapilmistir. Bir sonraki guncellemede eksiklerini giderecegim. Suanda sistem a etiketi olan tum linkleri ziyaret ediyor yani disariya link cikisi olursa sistem sapitabiliyor ve bazi internet sitelerindeki baslik ve aciklamalari okumuyor. Ek olarak ziyaret edilen linklerin de ciktisini veremiyor.

    Gelecek guncelleme de bunlari yapacagim.
  • 10-10-2013, 15:09:52
    #3
    Yeni bir guncelleme yaptim; flood yapiyorum biliyorum ama bu sekilde ilerlemesi lazim.

    import urlparse
    import urllib
    from bs4 import BeautifulSoup
    from urllib import *
    
    url = "http://www.onlineradyo.com.tr"
    
    urls = [url]
    visited = [url]
    
    while len(urls) >0:
        try:
            htmltext = urllib.urlopen(urls[0]).read()
            getir = urllib.urlopen(urls[0])
            suan = urllib.geturl(getir)
        except:
            print urls[0]
    
        soup = BeautifulSoup(htmltext)
    
        urls.pop(0)
    
    
        for tag in soup.findAll('a', href=True):
            tag['href'] = urlparse.urljoin(url,tag['href'])
            if url in tag['href'] and tag['href'] not in visited:
                urls.append(tag['href'])
                visited.append(tag['href'])
    
        #baslik
        print "Title: " + soup.title.string
    
        #aciklama
        for link in soup("meta", {"name":"description"}):
                print "Description: " + link['content']
    Taranan sayfa linki
    Baslik
    Aciklama

    Seklinde cikti verir.
  • 10-10-2013, 15:51:54
    #4
    Üyeliği durduruldu
    Teşekkürler geliştirilebilir.
  • 21-10-2013, 00:16:24
    #5
    KEO
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Hocam kodlarınızı biraz düzenledim. Kodlarınızı fonksiyon ve class yapılarını kullanarak yazmanız, koların anlaşılırlığı arttıracak ve sonradan yapacağınız değişiklikler açısından büyük kolaylık sağlayacaktır.
    Son olarak bu tür çoklu işlemleri yaparken thread kullanmanız çok büyük bir verim sağlayacaktır. İyi çalışmalar.

    #-*- coding: utf-8 -*-
    from urllib import *
    from urlparse import urljoin
    
    from bs4 import BeautifulSoup
    
    def Info(url):
        try:
            site = urlopen(url)
            html = site.read()
        except:
            return 'Bağlantı Hatası'
    
        soup = BeautifulSoup(html)
    
        title = soup.title.string
        desc = soup("meta", {"name":"description"})[0]['content']
        tags = soup.findAll('a', href=True)
    
        return (title, desc, tags)
    
    def Scan(url):
        urls = [url]
        visited = [url]
    
        while len(urls) > 0:
            url = urls[0]
    
            info = Info(url)
            if type(info) == type('str'):
                print info
                return
    
            print 'Title: ' + info[0]
            print 'Description: ' + info[1]
            print '~'*20
    
            urls.remove(url)
            tags = info[2]
    
            for tag in tags:
                tag['href'] = urljoin(url, tag['href'])
                if url in tag['href'] and tag['href'] not in visited:
                    urls.append(tag['href'])
                    visited.append(tag['href'])
    
    if __name__ == '__main__':
        while True:
            url = raw_input('URL: ')
            Scan(url)
  • 12-11-2013, 17:37:42
    #6
    KEO adlı üyeden alıntı: mesajı görüntüle
    Hocam kodlarınızı biraz düzenledim. Kodlarınızı fonksiyon ve class yapılarını kullanarak yazmanız, koların anlaşılırlığı arttıracak ve sonradan yapacağınız değişiklikler açısından büyük kolaylık sağlayacaktır.
    Son olarak bu tür çoklu işlemleri yaparken thread kullanmanız çok büyük bir verim sağlayacaktır. İyi çalışmalar.

    #-*- coding: utf-8 -*-
    from urllib import *
    from urlparse import urljoin
    
    from bs4 import BeautifulSoup
    
    def Info(url):
        try:
            site = urlopen(url)
            html = site.read()
        except:
            return 'Bağlantı Hatası'
    
        soup = BeautifulSoup(html)
    
        title = soup.title.string
        desc = soup("meta", {"name":"description"})[0]['content']
        tags = soup.findAll('a', href=True)
    
        return (title, desc, tags)
    
    def Scan(url):
        urls = [url]
        visited = [url]
    
        while len(urls) > 0:
            url = urls[0]
    
            info = Info(url)
            if type(info) == type('str'):
                print info
                return
    
            print 'Title: ' + info[0]
            print 'Description: ' + info[1]
            print '~'*20
    
            urls.remove(url)
            tags = info[2]
    
            for tag in tags:
                tag['href'] = urljoin(url, tag['href'])
                if url in tag['href'] and tag['href'] not in visited:
                    urls.append(tag['href'])
                    visited.append(tag['href'])
    
    if __name__ == '__main__':
        while True:
            url = raw_input('URL: ')
            Scan(url)
    Ben kendimi gelistirme acisindan yapmistim. Python konusunda yeniyim o yuzden. Gelistirme icin ve onerileriniz icin tesekkurler. Bu gelistirme uzerinden devam ederim artik.