找遍了百度和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而已.