手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:pagerank

getPageRank for golang

 不多说了。其实这是一个复刻版,原来的PHP代码就在注释里面。在google play上面已经存了代码了。如果你觉得我这里的代码看起来不方便,可以移步play.golang.org。

XML/HTML代码
  1. package main  
  2.   
  3. import (  
  4.     "fmt"  
  5.     "io/ioutil"  
  6.     "net/http"  
  7.     "net/url"  
  8.     "strings"  
  9.     "unicode/utf8"  
  10. )  
  11.   
  12. /**  
  13. //https://github.com/phurix/pagerank/blob/master/pagerank2.php  
  14. function GetPageRank($q,$host='toolbarqueries.google.com',$context=NULL) {  
  15.     $seed = "Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE. Yes, I'm talking to you, scammer.";  
  16.     $result = 0x01020345;  
  17.     $len = strlen($q);  
  18.     for ($i=0; $i<$len; $i++) {  
  19.         $result ^= ord($seed{$i%strlen($seed)}) ^ ord($q{$i});  
  20.         $result = (($result >> 23) & 0x1ff) | $result << 9;  
  21.     }  
  22.     if (PHP_INT_MAX != 2147483647) { $result = -(~($result & 0xFFFFFFFF) + 1); }  
  23.     $ch=sprintf('8%x', $result);  
  24.     $url='http://%s/tbr?client=navclient-auto&ch=%s&features=Rank&q=info:%s';  
  25.     $url=sprintf($url,$host,$ch,$q);  
  26.     @$pr=file_get_contents($url,false,$context);  
  27.     return $pr?substr(strrchr($pr, ':'), 1):false;  
  28. }  
  29. */  
  30.   
  31. func main() {  
  32.     fmt.Println(getPageRank("http://neaststudio.com"))  
  33. }  
  34.   
  35. func getPageRank(urlstring string) string {  
  36.     seed := []byte("Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE. Yes, I'm talking to you, scammer.")  
  37.     seedlen :len(seed)  
  38.     result :0x01020345  
  39.     q := []byte(urlstring)  
  40.     qlen :len(q)  
  41.     for i :0; i < qlen; i++ {  
  42.         seedmod :i % seedlen  
  43.         seed_ascii, _ :utf8.DecodeLastRuneInString(string(seed[seedmod]))  
  44.         q_ascii, _ :utf8.DecodeLastRuneInString(string(q[i]))  
  45.         result ^= int(seed_ascii ^ q_ascii)  
  46.         result = ((result >> 23) & 0x1ff) | result<<9  
  47.     }  
  48.     result = -(^(result & 0xffffffff) + 1)  
  49.     ch :fmt.Sprintf("8%x", result)  
  50.     u, _ :url.Parse("http://toolbarqueries.google.com/tbr")  
  51.     uq :u.Query()  
  52.     uq.Set("client", "navclient-auto")  
  53.     uq.Set("ch", ch)  
  54.     uq.Set("features", "Rank")  
  55.     uq.Set("q", "info:"+string(q))  
  56.     u.RawQuery = uq.Encode()  
  57.     resp, err :http.Get(u.String())  
  58.     if nil != err {  
  59.         return err.Error()  
  60.     }  
  61.     defer resp.Body.Close()  
  62.     body, err :ioutil.ReadAll(resp.Body)  
  63.     if nil != err {  
  64.         return err.Error()  
  65.     }  
  66.     //pagerank只有一位,所以可以直接取最后一位。。。免去正则  
  67.     if len(body) <= 0 {  
  68.         return "error"  
  69.     }  
  70.     pagerankbody :strings.TrimSpace(string(body[:]))  
  71.     return pagerankbody[len(pagerankbody)-1:]  
  72. }  

play.golang的地址是:http://play.golang.org/p/uACC-1rdF3

不过,在网页上执行会报错的,说是没有权限。。本地测试成功

 

Tags: pagerank

关于PR的好消息

做网站的人关心的是怎么样能够被更多的收录,毕竟收录的越多,被搜索的机会也就越大,被搜索的机会越大,被收录的也就会更多,这是一个良性循环。

对于这一点google的PAGERANK也算是一个门槛,相比较而言,PR值越高的网站,GOOGLE等爬虫就会越关注这个网站,如果上面的资料多,那么被收录的机会就会大大增加。

SEO做的就是这些功能。。

今天pr大更新,欣慰的是neatstudio.com的PR终于升到5了,neatcn.com的PR升到3,然而,52cd.net的PR降为1了,原来是3啊。心痛中。。。

不过,升到5也算是一个好消息了。52cd.net的,我以后会慢慢补回来的。。哼

neatcn.com的alexa rank是342050了,一切在向好的方面发展

谨以此文纪念一下这些数值,OHYEAH.

 

Tags: pagerank, google, pr