说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

ASP.NET(C#)获取Google PR值

HTML文档下载 WORD文档下载 PDF文档下载
许多网站都提供了查询Google PR值(PageRank)的功能,其实这些功能很好实现,但网上流传的ASP.NET版本对于校验码的计算存在错误致使无法正确运行,编者根据运行正确的PHP版本改编为C#版本,供大家编程时参考。
许多网站都提供了查询Google PR值(PageRank)的功能,其实这些功能依托.NET强大的能力,实现起来也是毫不费力,网上流传的ASP.NET(C#)代码对于校验码计算错误,无法得到正确的校验码,我根据正确的PHP代码改编为C#版本,代码如下:
using System;using System.Collections.Generic;using System.Text;using System.Web;using System.Net;using System.IO;// 本代码是由"好饱"根据PHP版本改编,详情见我的专栏 http://www.okbase.net/home/haobaonamespace BLL{    public class Net    {        public static string GetHtml(string url)        {            string html = "";            WebClient wc = new WebClient();            try { html = wc.DownloadString(url); }            catch { }            return html;        }    }    public class GooglePR    {        public static Int64 StrToNum(string Str, Int64 Check, Int64 Magic)        {            Int64 Int32Unit = 4294967296;  // 2^32            int length = Str.Length;            char[] StrArray = Str.ToCharArray();            for (int i = 0; i < length; i++)            {                Check *= Magic; 	                                if (Check >= Int32Unit) {                    Check = (Check - Int32Unit * (Int64)(Check / Int32Unit));                    //if the check less than -2^31                    Check = (Check < -2147483648) ? (Check + Int32Unit) : Check;                }                Check += StrArray[i];            }            return Check;        }        //将URL进行哈希编码        public static Int64 HashURL(string String)        {            Int64 Check1 = StrToNum(String, 0x1505, 0x21);            Int64 Check2 = StrToNum(String, 0, 0x1003F);            Check1 >>= 2;            Check1 = ((Check1 >> 4) & 0x3FFFFC0) | (Check1 & 0x3F);            Check1 = ((Check1 >> 4) & 0x3FFC00) | (Check1 & 0x3FF);            Check1 = ((Check1 >> 4) & 0x3C000) | (Check1 & 0x3FFF);            Int64 T1 = ((((Check1 & 0x3C0) << 4) | (Check1 & 0x3C)) << 2) | (Check2 & 0xF0F);            Int64 T2 = ((((Check1 & 0xFFFFC000) << 4) | (Check1 & 0x3C00)) << 0xA) | (Check2 & 0xF0F0000);            return (T1 | T2);        }        //为哈希字符串生成校验码        public static string CheckHash(Int64 Hashnum)        {            int CheckByte = 0;            int Flag = 0;            string HashStr = string.Format("{0:D}", Hashnum);            int length = HashStr.Length;            Char[] HashStrArray = HashStr.ToCharArray();            for (int i = length - 1;  i >= 0;  i --) {                int Re = HashStrArray[i] - '0';                if (1 == (Flag % 2)) {                                  Re += Re;                    Re = (int)(Re / 10) + (Re % 10);                }                CheckByte += Re;                Flag++;	            }            CheckByte %= 10;            if (0 != CheckByte) {                CheckByte = 10 - CheckByte;                if (1 == (Flag % 2) ) {                    if (1 == (CheckByte % 2)) {                        CheckByte += 9;                    }                    CheckByte >>= 1;                }            }            return "7" + CheckByte.ToString() + HashStr.ToString();        }        // 得到ch校验码        public static string GetCH(string url)        {            return CheckHash(HashURL(url));         }        public static string GetPageRank(string strUrl)        {            string ch = GetCH(strUrl);            string sURL = "http://toolbarqueries.google.com/search?client=navclient-auto&ch=" + ch + "&ie=UTF-8&oe=UTF-8&features=Rank&q=info:" + strUrl;            string result = Net.GetHtml(sURL);            if (!String.IsNullOrEmpty(result))            {                result = result.Trim();                if (result.IndexOf(':') > 0)                {                    string[] pr = result.Split(':');                    if (pr.Length == 3)                        return pr[2].ToString();                }            }            return "0";        }    }}

调用格式举例:

 

string pr = GooglePR.GetPageRank("www.okbase.net");

 

VB如何为执行程序加上参数? VB如何压缩较长的全路径文件名中的路径 (Path) 字串长度? VB如何在VB中实现密码的读取 如何在VB中使用命令行参数 VB如何在内存中的指定位置取数据? VB如何在已经存在的文本的textbox添加新的一行 VB如何在資料庫中存入單引號? VB如何正确使用VB6访问Access2000数据库 VB如何自动记录计算机开机时间? VB如何做到当我们单击窗体的最小化和关闭按钮时,窗体先最小化到任务栏成为按钮,然后消失呢?金山词霸能 软件工程篇-Const与#Const的对比 -VB资料 软件工程篇-从Visual Data Manager开始 -VB资料 软件工程篇-理解错误处理代理 -VB资料 软件工程篇-清空集合内容的几种方法 -VB资料 软件工程篇-受限制的共享软件Shareware -VB资料 设定CapsLock ScrollLock NumLock-VB资料 设置计算机名称-VB资料 深入SERIPTING RUNTIME LIBRARY-VB资料 '识别常数的简单四则运算-VB资料 实现平面工具栏 -VB资料 使程序不在 Ctrl+Alt+Del 弹出的对话框内-VB资料 VB使用 API 开始屏幕保护 VB使用rdoPreparedStatement实现参数化查询 使用Vb5制作Easter Egg 使用VB实现所见即所得功能 使用VB中的SERIPTING RUNTIME LIBRARY VB使用Win95的动画光标 VB使用Windows内建的图标 VB使用Word的“艺术字”工具 VB使用WriteFile 块读/写数据 VB使用枚举变量 棘手问题??急急!!! 各位懂软件测试的朋友,请介绍一些资料给我,非常感谢! 菜鸟问个调试问题,别见笑! 请介绍一下学数据库应学什么开发工具更好些,除了sql语言? 请教一个关于TextArea区域中数据显示的问题 高分求以二进制方式打开文件 哪里能找到dialogic卡的VN协议? 求解:BC++3.1 or high编程在DOS下连接interbase server 高手快进!!!一个DataReport报表的异步操作问题( MYSQL的帮助文档哪里有下载?谢谢 求,谁有zip unzip的源代码 菜鸟的问题,送分来了! 有谁知道什么是SDD吗?请指教!!!!别吝惜呀!!^o^ 简单的右键弹出菜单问题…… 我想编一个pop3服务器,适用于windows iis,给点提示吧 编译SERVLET时老出现"...包 javax.servlet 不存在..." ? 请教关于 98中 Personal web Server的问题 辽宁4:0狂胜广东,爽丫!SB广东解说员居然说中国足球没戏了~~~~~~~~~~ 用APPLET做一个上传的东西可以吗???? "我的问题"栏中,只剩下未解决的了,已给分的为何都不见了? 在CSDN和大富翁都没人会答的简单OLE问题,唉! 我是shijie819有问题?? 各位高人,看看代码,不能输入汉字只能输入英文,问题在那里? 如何将编好的n个模块连接到一个工程 请教!关于listbox的列属性? Applet为什么能在JBuiler5中调试,而不能在浏览器中显示 SOS!谁有语音卡编程的经验和资料,恳请指教!给分的! 谁有用VC++中ODBC API 编写数据库的例子? sql server 有沒有邏輯型字段!!! 电娃娃领分!!!!---goldsun发 猛禽进来拿分. 谁有画线的函数源码,参数为两点坐标? 如何将xml中的数据转换成动态的数据图形显示啊 有谁可以讲讲有关KV3000的A盘..... 没有问题 请问斑竹:是不是以前的得分时间长了会没有了? 小弟向大哥大姐们请教VB数据库问题! 考研问题请教!!!! 这个问题和apache配置有关吧! 哪里有比较稳定而且空间大、速度快的主页空间? 向高手请教!如何实现网络DDE ie的internet选项菜单项被锁定,如何解开(急,马上给分) 回答者有分 我需要JAVA-JDBC打开数据库的原码.................. 很想给datawindow 加上一个标题栏, 可加上后是灰色的 :( 可变成蓝色的吗? 关于ORACLE8.1.7中SQL *PLUS 不能显示中文的问题 ? C语言中好像有个with指示符吧?怎么用的? 网上有(深入浅出mfc)这本书可以下载吗?? 这个SQL或存储过程怎么写?(MSSQL7) 那位仁兄有进销存源代码(delphi版)及相关资料的,帮帮忙,往jian38625@sohu.com发 Exchange 2000 server 客户端问题 《正在长大的我》作文600字初一作文 读书心得50字 谁能告诉我读了这么多年的书顶了几根毛? 怎样写传统习俗的作文 歌颂党的1200字高中作文 以青春为话题的一篇不少于800字的作文 民俗风俗作文 高中写1200字作文,过分吗? 英语 关于远动健身的文章主要写出运动可以强身健体之类的,还有对生活的好处 民俗风情作文 书香伴我成长 中学参赛作文 800~1200字 必须原创 我得到了锻炼作文帮帮忙500字就OK了 读书示小妹十八生日书倒数第二段“全然跪倒来读”怎么理解? 打破思维定势的高中作文素材啊.力求新颖、简洁、深刻.有急用呢、 我得到了锻炼 作文 读书示小妹十八生日书中的读书目的 素材需要一些高中血作文用到的作文素材按照以下格式的 1事例材料2感想3适用主题4相关材料拓展 关于我的锻炼故事的作文我现在急需一篇“我的锻炼故事”这篇文章,我后天就要交了,给篇参考!求你!要求记录自己的体育活动经历,可以是一次体育活动,也可以是自己喜欢的体育的过程故事 《读书示小妹十八生日书》 小妹如何答信 文章 有哪些你读过的名书?写出体会!要3本以上! 高中作文素材谁有 快乐作文快乐成长500字 谁给我推荐几本让我读了有深刻感想体会的书籍……文学的亦可.最近无聊谢了. 求《青春旋律》800字作文 成长中的快乐作文(500字)写清楚事例! 找高中作文素材,关于超越的 一篇作文(在阳光下健康快乐的成长)600字 成长的快乐作文500字 “快乐作文 快乐成长”的作文怎么写?围绕“快乐作文 快乐成长”展开作文!600字左右! 求作文《就这样慢慢长大》600字 成长快乐作文(500多字) 成长中的快乐作文. 在阳光下健康快乐地成长,作文怎么写?可以写关于童年的事吗?有什么好的建议? 求助一篇关于青春的800字的高中作文 急除诗歌外,文体都可以,要求写青春的寂寞,青春的无奈,青春的感伤,自己心中的孤单,无奈,烦恼,文章细腻,不要说什么大道理,符合现实,当然了,有诗歌的话 请安静 600字写一篇关于校内作文,是请安静, 就这样慢慢长大的作文600字要自己写的 高中800字关于青春的作文 .不要太有哲理,不要太有文采,越普通越好.不能让老师认为是上网抄的 600字作文题目; 成长类作文 600字 积极阳光向上可以是 成长中的酸甜苦辣 ...等等 求礼仪论文 2000字左右 我心中那一道阳光,我是男的.400~500字 在阳光下健康快乐的成长这篇作文怎么写?主要写体育方面的. 求作文春节的习俗,急,400字谢了最好有元宵节的, 爱如阳光(作文,400字以上) 求高中作文人物素材(现代人物),必须是现代人物哦,各个领域都可越快越好,可以追加分 老师让我们写一篇600字的作文题目是“我心目中的偶像”急! 夏日的阳光作文400字 求以下人物高中作文素材傅斯年、白落梅、叶圣陶、村上春树、巴尔扎克、雨果、莫泊桑、哥德、泰戈尔、曾国藩、伯夷、叔齐、接舆.越多越好,其他人物素材也行,事例不要太长100字左右, 600字作文题目是我心目中的...地球;主要是说人类破坏地球的. 以阳光为主题的作文!400字!要生活中的事!不能写像“一缕阳光,一缕清风,一杯香茗,一卷散发古典人文气息的唐诗宋词,足以将我的思绪带入那风流倜傥的时代.沉醉在虚实交织的梦幻境界,沐浴 关于真诚的作文素材 现代的人物 一个以尊严为题目的600字作文!要有说出何为尊严.我们为何要认识尊严!尊严的重要性 话题作文“快乐作文,快乐成长”700字 高中作文素材网有哪些? 关于尊严的作文、、800字、、急啊、、、 请以快乐为话题写作文,字数在500字左右不必写太好.就是初三语文80分左右的人的水平,... 我把掌声送给你 作文600字左右 我想长大或我不想长大的作文 600字 读书笔记50字左右 博士生读这么多年书值得吗?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn