Python ile Pagerank Değeri Almak


S.A. Ubuntu altinda yine bir kac sey deniyordum. PHP ile pagerank değerini alan bir betik kodlamistim. Bunu C++ içinde denemiştim. Ancak tam bir bilgiye haiz olmadığım için başaramadım. Sonra aynısını Python için deneyeyim dedim… Şu an bulduğum bu değerler gerçekçi değerler. Tam sonucu veriyor… Kısacası gelişime açık bir betiği sizinle paylaşayım..

import urllib

def pagerank_getir(url):
    hsh = check_hash(hash_url(url))
    google_adres = 'http://www.google.com/search?client=navclient-auto&features=Rank:&q=info:%s&ch=%s' % (urllib.quote(url), hsh)
    try:
        f = urllib.urlopen(google_adres)
        rank = f.read().strip()[9:]
    except Exception:
        rank = 'N/A'
    if rank == '':
        rank = '0'
    return rank

def  say_yaz(dizi, tam, faktor):
    for i in range(len(dizi)) :
        tam *= faktor
        tam &= 0xFFFFFFFF
        tam += ord(dizi[i])
    return tam

def hash_url(dizi):
    c1 = say_yaz(dizi, 0x1505, 0x21)
    c2 = say_yaz(dizi, 0, 0x1003F)

    c1 >>= 2
    c1 = ((c1 >> 4) & 0x3FFFFC0) | (c1 & 0x3F)
    c1 = ((c1 >> 4) & 0x3FFC00) | (c1 & 0x3FF)
    c1 = ((c1 >> 4) & 0x3C000) | (c1 & 0x3FFF)

    t1 = (c1 & 0x3C0) << 4
    t1 |= c1 & 0x3C
    t1 = (t1 << 2) | (c2 & 0xF0F)

    t2 = (c1 & 0xFFFFC000) << 4
    t2 |= c1 & 0x3C00
    t2 = (t2 << 0xA) | (c2 & 0xF0F0000)

    return (t1 | t2)

def check_hash(hash_int):
    hash_str = '%u' % (hash_int)
    flag = 0
    check_byte = 0

    i = len(hash_str) - 1
    while i >= 0:
        byte = int(hash_str[i])
        if 1 == (flag % 2):
            byte *= 2;
            byte = byte / 10 + byte % 10
        check_byte += byte
        flag += 1
        i -= 1

    check_byte %= 10
    if 0 != check_byte:
        check_byte = 10 - check_byte
        if 1 == flag % 2:
            if 1 == check_byte % 2:
                check_byte += 9
            check_byte >>= 1

    return '7' + str(check_byte) + hash_str

if __name__ == '__main__':
    site_adresi=raw_input("Lutfen Site Adresinizi Giriniz: ")
    print pagerank_getir("\n"+site_adresi)
raw_input("")

5 comments on “Python ile Pagerank Değeri Almak

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s