/// <summary> /// 获取某站点关键字在某搜索引擎的排名 /// </summary> /// <param name="_engine"></param> /// <param name="Url"></param> /// <param name="KeyWord"></param> /// <returns></returns> public static string engineKeyWordinfo(EnumSearchEngine _engine, string Url, string KeyWord) { string re = "200+"; string Html = ""; string searchUrl = ""; switch (_engine) { case EnumSearchEngine.Baidu: EchoHelper.Echo("关键词【" + KeyWord + "】的排名查询中,请稍后...", "", EchoHelper.EchoType.普通信息); searchUrl = "http://i.linkhelper.cn/searchkeywords.asp"; string postData = StringHelper.urlencode("url=" + Url + "&querywords=" + KeyWord + "&btnsubmit=%B2%E9+%D1%AF", "gb2312"); CookieCollection cookies = new CookieCollection(); Html = new xkHttp().httpPost(searchUrl, postData, ref cookies, searchUrl, Encoding.GetEncoding("gb2312")); re = RegexHelper.getMatch(Html, "百度排名:(.*?) ", 1); if (re.Contains("排名在")) { re = "200+"; } break; case EnumSearchEngine.Google: break; } return(re); }
/// <summary> /// 反向链接信息 /// </summary> public static string GetBackLinkInfo(EnumSearchEngine _engine, string Url) { CutRegexInfo model = SeoHelper.GetCutRegexInfo(_engine, Url, false); string Html = HtmlCatch.GetHtml(model.siteUrl, model.encoding); string Result = SeoHelper.GetMetaString(Html, model.regStart, model.regEnd, true); return(HtmlCatch.NoHTML(Result)); }
/// <summary> /// 获取某站点系列关键字在某搜索引擎的排名 /// </summary> /// <returns></returns> public static List <KeyWords> GetKeyWordInfo(EnumSearchEngine _engine, string Url, List <string> list) { List <KeyWords> KeyList = new List <KeyWords>(); foreach (string keyword in list) { KeyWords Model = new KeyWords(); Model.Rank = GetKeyWordInfo(_engine, Url, keyword); Model.Keyname = keyword; KeyList.Add(Model); } return(KeyList); }
/// <summary> /// 某站点在某搜索引擎下所有信息 /// </summary> public static SiteSeoInfo SeoinfoAppendModelInfo(EnumSearchEngine _engine, string Url, List <string> list) { SiteSeoInfo Model = new SiteSeoInfo(); Model.SearchEngine = _engine; Model.SiteUrl = Url; Model.Record = GetRecordInfo(_engine, Url).Replace("数", "").Replace("约", ""); Model.BackLink = GetBackLinkInfo(_engine, Url).Replace("数", "").Replace("约", ""); if (_engine == EnumSearchEngine.Google) { Model.PR = PRCrack.PageRank.CheckPR("http://" + Url); } Model.listKeyword = GetKeyWordInfo(_engine, Url, list); return(Model); }
/// <summary> /// 获取某站点特定搜索引擎信息 /// </summary> public static SearchEngineInfo SeoModel(string Url, EnumSearchEngine _engine) { string[] meta = GetMeta(Url); SearchEngineInfo Model = new SearchEngineInfo(); Model.SearchEngine = _engine; Model.SiteUrl = Url; Model.Title = meta[0]; Model.Keywords = meta[1]; Model.Description = meta[2]; Model.Record = GetRecordInfo(_engine, Url).Replace("数", "").Replace("约", ""); Model.BackLink = GetBackLinkInfo(_engine, Url).Replace("数", "").Replace("约", ""); if (_engine == EnumSearchEngine.Google) { Model.PR = PRCrack.PageRank.CheckPR("http://" + Url); } return(Model); }
/// <summary> /// 获取某站点关键字在某搜索引擎的排名 /// </summary> public static string GetKeyWordInfo(EnumSearchEngine _engine, string Url, string KeyWord) { System.Text.RegularExpressions.MatchCollection mc; System.Text.RegularExpressions.MatchCollection mcOther; string Html = ""; string resultText = ""; string searchUrl = ""; Regex reg; Regex regOther; switch (_engine) { case EnumSearchEngine.Baidu: searchUrl = "http://www.baidu.com/s?tn=baiduadv&rn=100&q1="; Html = HtmlCatch.GetHtml(searchUrl + HttpUtility.UrlEncode(KeyWord, System.Text.Encoding.GetEncoding("gb2312")), "gb2312"); // Url = Url.Replace("\\", ""); resultText = SeoHelper.GetMetaString(Html, "<div id=\"wrapper\">", "<font color=\"#008000\">" + Url + "", true); reg = new Regex("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\""); regOther = new Regex("<table cellpadding=\"0\" cellspacing=\"0\""); mc = reg.Matches(resultText); mcOther = regOther.Matches(resultText); return((mc.Count + mcOther.Count).ToString()); break; case EnumSearchEngine.Google: Html = HtmlCatch.GetHTMLByUrl("http://www.google.com.hk/search?hl=zh-CN&source=hp&num=100&q=" + HttpUtility.UrlEncode(KeyWord) + "", "Get", "", false, System.Text.Encoding.UTF8); resultText = SeoHelper.GetMetaString(Html, "<title>", "<br><cite>\\S*?" + Url, true); reg = new Regex("<li class=g>"); mc = reg.Matches(resultText); return(mc.Count.ToString()); break; default: break; } return("0"); }
/// <summary> /// 站点收录信息 /// </summary> /// <param name="_engine"></param> /// <returns></returns> public static int getBaiduNum(EnumSearchEngine _engine, string url) { //EchoHelper.Echo("网站【" + url + "】的收录查询中,请稍后...", "", EchoHelper.EchoType.普通信息); string regStart = "找到相关结果数"; string regEnd = "个"; string siteUrl = "http://www.baidu.com/s?wd=site%3A" + url; CookieCollection cookies = new CookieCollection(); string html = new xkHttp().httpGET(siteUrl, ref cookies, siteUrl); string Result = StringHelper.GetMetaString(html, regStart, regEnd, true); int re = 9999; try { re = Convert.ToInt32(Result); } catch { re = 0; } if (html.Contains("没有找到与")) { re = 0; } return(re); }
/// <summary> /// 正则表达式信息设置 /// </summary> /// <param name="_engine"></param> /// <param name="Url"></param> /// <returns></returns> public static CutRegexInfo GetCutRegexInfo(EnumSearchEngine _engine, string Url, bool isRecord) { CutRegexInfo Model = new CutRegexInfo(); switch (_engine) { case EnumSearchEngine.Google: Model.regStart = "找到"; Model.regEnd = "条结果"; Model.encoding = "gb2312"; if (isRecord) { Model.siteUrl = "http://www.google.com.hk/search?hl=zh-CN&source=hp&q=site%3A" + Url; } else { Model.siteUrl = "http://www.google.com.hk/search?hl=zh-CN&source=hp&q=link:" + Url; } break; case EnumSearchEngine.Baidu: Model.regStart = "找到相关结果"; Model.regEnd = "个"; Model.encoding = "gb2312"; if (isRecord) { Model.siteUrl = "http://www.baidu.com/s?wd=site%3A" + Url; } else { Model.siteUrl = "http://www.baidu.com/s?cl=3&wd=domain:" + Url; } break; case EnumSearchEngine.Yahoo: Model.regStart = "找到相关网页"; Model.regEnd = "条"; Model.encoding = "utf-8"; if (isRecord) { Model.siteUrl = "http://one.cn.yahoo.com/s?p=site%3A" + Url; } else { Model.siteUrl = "http://sitemap.cn.yahoo.com/search?p=" + Url + "&bwm=i"; } break; case EnumSearchEngine.Sogou: Model.regStart = "找到"; Model.regEnd = "个网页"; Model.encoding = "gb2312"; if (isRecord) { Model.siteUrl = "http://www.sogou.com/web?query=site%3A" + Url; } else { Model.siteUrl = "http://www.sogou.com/web?query=link:" + Url; } break; case EnumSearchEngine.Soso: Model.regStart = "搜索到"; Model.regEnd = "项结果"; Model.encoding = "gb2312"; if (isRecord) { Model.siteUrl = "http://www.soso.com/q?pid=s.idx&w=site%3A" + Url; } else { Model.siteUrl = "http://www.soso.com/q?pid=s.idx&w=link:" + Url; } break; case EnumSearchEngine.Bing: Model.regStart = "共"; Model.regEnd = "条"; Model.encoding = "utf-8"; if (isRecord) { Model.siteUrl = "http://cn.bing.com/search?form=QBLH&filt=all&q=site%3A" + Url; } else { Model.siteUrl = "http://cn.bing.com/search?form=QBLH&filt=all&q=link:" + Url; } break; case EnumSearchEngine.Youdao: Model.regStart = "共"; Model.regEnd = "条结果"; Model.encoding = "utf-8"; if (isRecord) { Model.siteUrl = "http://www.youdao.com/search?ue=utf8&keyfrom=web.index&q=site:" + Url; } else { Model.siteUrl = "http://www.youdao.com/search?ue=utf8&keyfrom=web.index&q=link:" + Url; } break; } return(Model); }