Sprawdzanie PageRank w Pythonie
Oto skrypt w pytonie do sprawdzania PageRank dostępny z https://github.com/phurix/pagerank (pagerank2.py), który zmodyfikowałem tak aby zwracało sam numer PR lub '-' jeśli strona nie posiada PageRank. Dodatkowo dzięki name może być od razu wykorzystywany jako samodzielny skrypt do sprawdzania PageRank lub importowany do innych, bardziej rozbudowanych skryptów o czym w następnym razem.
Użycie bezpośrednie:
> python pagerank2.py python.org blog.furas.pl bcocr.pl
python.org 8
blog.furas.pl 1
bcocr.pl -
Użycie w innym skrypcie:
#!/usr/bin/python
import pagerank2
lista = ['python.org', 'blog.furas.pl', 'bcocr.pl']
for i in lista:
print i, pagerank.GetPR(i)
A oto właściwy skrypt z przeróbkami
#!/usr/bin/env python
# Google Pagerank Checksum Algorithm (Firefox Toolbar)
# Downloaded from http://pagerank.phurix.net/
# Requires: Python >= 2.4
# Versions:
# pagerank2.py 0.2 - Fixed a minor formatting bug
# pagerank2.py 0.1 - Public release
# Settings
prhost='toolbarqueries.google.com'
prpath='/tbr?client=navclient-auto&ch=%s&features=Rank&q=info:%s'
# Function definitions
def GetHash (query):
SEED = "Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE. Yes, I'm talking to you, scammer."
Result = 0x01020345
for i in range(len(query)) :
Result ^= ord(SEED[i%len(SEED)]) ^ ord(query[i])
Result = Result >> 23 | Result << 9
Result &= 0xffffffff
return '8%x' % Result
def GetPageRank (query):
import httplib
conn = httplib.HTTPConnection(prhost)
hash = GetHash(query)
path = prpath % (hash,query)
conn.request("GET", path)
response = conn.getresponse()
data = response.read()
conn.close()
return data
#EOF
# my modyfication / moje modyfikacje
# Bartlomiej 'furas' Burek - blog.furas.pl - furas@tlen.pl
# taking only PR or '-' if page has no PR
# pobieranie tylko PR lub '-' jesli strona nie posiada PR
def GetPR (query):
pr = GetPageRank(query).strip().split(':')
return pr[2] if len(pr) >= 3 else '-'
# cli - checking PR for pages added in command line
# cli - sprawdzanie PR dla adresow podanych w lini komand
if __name__ == '__main__':
import sys
for url in sys.argv[1:]:
print url, GetPR(url)
If you like it
Buy a Coffee
