当前位置: 代码迷 >> 人工智能 >> paip.c#net 获取网站PR值
  详细解决方案

paip.c#net 获取网站PR值

热度:3012   发布时间:2013-02-26 00:00:00.0
paip.c#.net 获取网站PR值
paip.c#.net 获取网站PR值




 ----作者Attilax , 1466519819@qq.com--- 




今天使用.NET来获取网站PR值 ,GOOGLE的API在这里


       //http://toolbarqueries.google.com/tbr?client=navclient-auto&features=Rank&q=info:boliquan.com&ch=8185905d9
        //ret: Rank_1:1:0




主要是后边的那个CH参数,是个校检参数..




但是在网上找的代码都太老..因为这个API 2011.10左右进行过更新,所以CH参数计算算法改变了..老代码都失效了.




C#的代码找不到,只好找PHP的了.准备使用CLI接口调用PHP的..




结果PHP的代码下了一个,也是CH参数计算不对.晕..
放弃了.


JAVA的代码网上也有,考虑到JDK太大,就没试..




看来直接调用GOOGLE API太麻烦了,只好调用二手API了..我试了下,http://www.pagerank.cn/pr.asp?url=taobao.com&type=1


这个不错..就用这个了..


返回的是这样的形式:


  document.write("<a href='http://www.pagerank.cn/?s=taobao.com' target='_blank' title='该网站的PR是真实的。'>7</a>");








首先我建立了个测试页ASPX,准备调用webBrowser.因为它这个带DOM解析,比较方便..结果显示不在同一进程..搜索一小时无法解决..


只好用HttpWebRequest 了...先把HTML拉回来再说..




然后需要解析HTML了...先试着用正则解析了下,麻烦..放弃了.


就用个HTML类库来解析吧.Winista.HtmlParser.dll 有文档,到是蛮方便起来来. Htmlparser.chm..






    Lexer lexer = new Lexer(responseFromServer);
    Parser parser = new Parser(lexer);
    NodeList htmlNodes = parser.Parse(null);
    for (int i = 0; i < htmlNodes.Count; i++)
    { 
     INode htmlNode =   htmlNodes[i];
     if (htmlNode is Winista.Text.HtmlParser.Tags.ATag)
     {
         ATag at = (ATag)htmlNode;
       //  at.
         Response.Write(at.LinkText + "<p>");
     }






搞定了.

  相关解决方案