闲着,发个C#抓取alexa排名的代码

王朝网站推广·作者佚名  2011-12-04
窄屏简体版  字體: |||超大  

找遍了百度和GG,英文雅虎也找过了,没找到现成的.

只好自己写了一个,抓取很准确.^_^.需要的朋友随便拿.

(不晓得这有几位搞技术的朋友撒?)

在写一个seo的小工具,模拟蜘蛛爬取链接的,而且是检测蜘蛛认可的有效链接!!

(起因是有几个GG群的朋友遭遇到,恶意假链接欺骗,表面看谁也 看不出来,可实际蜘蛛一爬就漏馅了,用我的软件一检测,也可以原形毕露...)

废话不说了,代码在下面,附上截图一个..是我用朋友的环保网站检测的效果图,大概看下.

private string getAlexa(int idx, string url)

{

//SourceCode By http://77521.cn

string css = "";

string result = "无排名";

string html = Func.GetHttpPage("http://www.alexa.com/search?q=" + url.Replace("http://",""), "utf-8");

string patt = "<link href=\"([^\"'\\s]*?)\" _fcksavedurl="\"([^\"'\\s]*?)\"" _fcksavedurl="\"([^\"'\\s]*?)\"" _fcksavedurl="\"([^\"'\\s]*?)\"" type=\"text/css\" rel=\"stylesheet\">";

Regex reg = new Regex(patt, RegexOptions.IgnoreCase);

MatchCollection mc = reg.Matches(html);

if (mc.Count <= 0)

{//出错了

dgEdit(idx, 7, "无排名");

}

else

{//找到CSS了

css = Func.GetHttpPage(mc[0].Result("$1"), "utf-8");

reg = new Regex("Rank:([\\s\\S]*?)</a>", RegexOptions.IgnoreCase);

mc = reg.Matches(html);

if (mc.Count <= 0)

{

dgEdit(idx, 7, "无排名");

}

else

{

string mao = mc[0].Result("$1");

string mao2 = mao.Replace("\"", "").Replace("'", "").Replace(" ", "");

mao2 = Regex.Replace(mao2,"<\\!--.+?-->", "");

reg = new Regex("<span[\\s\\S]*?class=[\"']?(.+?)[\"']?>(.+?)</span>", RegexOptions.IgnoreCase);

mc = reg.Matches(mao2);

if (mc.Count <= 0)

{

dgEdit(idx, 7, "无排名");

}

else

{

//textBox1.Text = mao2;

for (int n = 0; n < mc.Count; n++)

{

if (css.IndexOf(mc[n].Result("$1")) != -1)

{

mao2 = Regex.Replace(mao2, "<span[^>]*?class=" + mc[n].Result("$1") + ">.+?</span>",

//textBox1.Text = textBox1.Text + "\r\n\r\n------------------------------------------

}

}

mao2 = Regex.Replace(mao2, "<[\\s\\S]+?>", "");

mao2 = Regex.Replace(mao2, " ", "");

mao2 = Regex.Replace(mao2, " ", "");

mao2 = Regex.Replace(mao2, "|", "");

mao2 = mao2.Replace("\r", "").Replace("\n", "");

dgEdit(idx, 7, mao2);

return mao2;

}

}

}

return result;

}

再废话点,这样代码可能普通站长是没用的,发在休闲区,也是个小原创,百度GG雅虎都没相关的代码哈.

有教程类的网站的朋友,别错过啊.^_^

尽管有点不太可能,还是希望大家转载的时候能保留一个链接.

------------------------------------------------------------------------------------------------

代码里, getHttpPage 是抓取网页代码的函数.这样简单的大家应该自己就备有的.不说了.

dgEdit 是一个delegate而已.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航