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>");
}
搞定了.