Pull PR(PageRank) data into Google Docs
If you have a simple listing of urls that you want to compare pagerank for this is a great little script for Google Docs. Here is an example:
First you want to import your spreadsheet into Google Docs.
Next, head on over to the Tools tab and click on Script Editor.
You can name the document and script sheet whatever you like or you can follow what I have here:
Insert the code from below (or from the text file) into the editor.
Now save that and head on over to your spreadsheet and copy this into the cells of the column for pagerank : “=iferror(getpr(A3),”no available data”)”
You should be all set.
Here is the code
/************************************************************\
* Call This - I do all the work...
\************************************************************/
function getpr(baseurl) {
url = baseurl.replace(/\?.*$/g,’?');
if (!stristr(url, “http”) ){
url = “http://” + url + “/”;
}
var reqgr = “info:” + url;
var reqgre = “info:” + URLencode(url);
var gch = GoogleCH(strord(reqgr));
var gch = “6″ + GoogleNewCh(gch);
var query = “”;
query += “http://toolbarqueries.google.com/tbr”;
query += “?client=navclient-auto”;
query += “&hl=en”;
query += “&ch=” + gch ;
query += “&ie=UTF-8″;
query += “&oe=UTF-8″;
query += “&features=Rank”;
query += “&q=”+ reqgre ;
var str = UrlFetchApp.fetch(query);
str = str.getContentText();
var foo = str.match(/Rank_.*?:.*?:(\d+)/i);
var pagerank = (foo) ? foo[1] : “No Rank”;
return pagerank;
}
/************************************************************\
* Hex
\************************************************************/
function hexdec(hex_string) {
hex_string = (hex_string+”).replace(/[^a-f0-9]/gi, ”);
return parseInt(hex_string, 16);
}
/************************************************************\
* Count
\************************************************************/
function Gcount( mixed_var, mode ) {
var key, cnt = 0;
if( mode == ‘COUNT_RECURSIVE’ ) mode = 1;
if( mode != 1 ) mode = 0;
for (key in mixed_var){
cnt++;
if( mode==1 && mixed_var[key] && (mixed_var[key].constructor === Array || mixed_var[key].constructor === Object) ){
cnt += count(mixed_var[key], 1);
}
}
return cnt;
}
/************************************************************\
* Size
\************************************************************/
function sizeof( mixed_var, mode ) {
return Gcount( mixed_var, mode );
}
/************************************************************\
* CodePoint
\************************************************************/
function ord(string) {
return (string+”).charCodeAt(0);
}
/************************************************************\
* String Length
\************************************************************/
function strlen(string) {
var str = string+”;
var i = 0, chr = ”, lgth = 0;
var getWholeChar = function (str, i) {
var code = str.charCodeAt(i);
var next = ”, prev = ”;
if (0xD800 if (str.length next || next > 0xDFFF) {
throw ‘High surrogate without following low surrogate’;
}
return str[i]+str[i+1];
} else if (0xDC00 prev || prev > 0xDBFF) {
throw ‘Low surrogate without preceding high surrogate’;
}
return false;
}
return str[i];
};
for (i=0, lgth=0; i < str.length; i++) {
if ((chr = getWholeChar(str, i)) === false) {
continue;
}
lgth++;
}
return lgth;
}
/************************************************************\
* Sub String
\************************************************************/
function substr(f_string,f_start,f_length ) {
f_string += ”;
if(f_start < 0) {
f_start += f_string.length;
}
if(f_length == undefined) {
f_length = f_string.length;
} else if(f_length < 0){
f_length += f_string.length;
} else {
f_length += f_start;
}
if(f_length < f_start) {
f_length = f_start;
}
return f_string.substring(f_start, f_length);
}
/************************************************************\
* String in String – I > 1);
a &= (~ z);
a |= 0×40000000;
a = (a >> (b – 1));
}
else {
a = (a >> b);
}
return a;
}
/************************************************************\
* Mix
\************************************************************/
function mix(a, b, c){
a -= b; a -= c; a ^= (zeroFill(c, 13));
b -= c; b -= a; b ^= (a << 8);
c -= a; c -= b; c ^= (zeroFill(b, 13));
a -= b; a -= c; a ^= (zeroFill(c, 12));
b -= c; b -= a; b ^= (a << 16);
c -= a; c -= b; c ^= (zeroFill(b, 5));
a -= b; a -= c; a ^= (zeroFill(c, 3));
b -= c; b -= a; b ^= (a << 10); c -= a; c -= b; c ^= (zeroFill(b, 15)); return new Array(a, b, c); } /************************************************************\ * Old G Hash \************************************************************/ function GoogleCH(url,length) { var init = 0xE6359A60; if (arguments.length == 1) length = url.length; var a = 0x9E3779B9; var b = 0x9E3779B9; var c = 0xE6359A60; var k = 0; var len = length; var mixo = new Array(); while(len >= 12)
{
a += (url[k+0] +(url[k+1]< b += (url[k+4] +(url[k+5]< c += (url[k+8] +(url[k+9]< mixo = mix(a,b,c);
a = mixo[0]; b = mixo[1]; c = mixo[2];
k += 12;
len -= 12;
}
c += length;
switch(len)
{
case 11:
c += url[k+10]< case 10:
c+=url[k+9]< case 9 :
c+=url[k+8]< case 8 :
b+=(url[k+7]< case 7 :
b+=(url[k+6]< case 6 :
b+=(url[k+5]< case 5 :
b+=(url[k+4]);
case 4 :
a+=(url[k+3]< case 3 :
a+=(url[k+2]< case 2 :
a+=(url[k+1]< case 1 :
a+=(url[k+0]);
}
mixo = mix(a,b,c);
if (mixo[2] < 0)
return (0×100000000 + mixo[2]);
else
return mixo[2];
}
/************************************************************\
* C32 to 8 Bit
\************************************************************/
function c32to8bit(arr32)
{
var arr8 = new Array();
for(i=0;i {
for (bitOrder=i*4;bitOrder {
arr8[bitOrder]=arr32[i]&255;
arr32[i]=zeroFill(arr32[i], 8);
}
}
return arr8;
}
/************************************************************\
* Mod
\************************************************************/
function myfmod(x,y)
{
var i = Math.floor(x/y);
return (x – i*y);
}
/************************************************************\
* New G Hash
\************************************************************/
function GoogleNewCh(ch)
{
ch = (((ch/7) << 2) | ((myfmod(ch,13))&7));
prbuf = new Array();
prbuf[0] = ch;
for(i = 1; i < 20; i++) {
prbuf[i] = prbuf[i-1]-9;
}
ch = GoogleCH(c32to8bit(prbuf), 80);
return ch;
}
/************************************************************\
* String CodePoint
\************************************************************/
function strord(string){
var result = new Array();
for (i = 0; i < strlen(string); i++) {
result[i] = ord(string[i]);
}
return result;
}
/************************************************************\
* Get G Hash
\************************************************************/
function gethash(url) {
return GoogleCH(strord(url));
}
/************************************************************\
* URL Encode
\************************************************************/
function URLencode(sStr)
{
return encodeURIComponent(sStr).replace(/\+/g,”%2B”).replace(/\//g,”%2F”);
}
or you can download a text file here: prscript
Have fun!!!
View Wake County Fire Stations in a larger map
