public static string CutBetween(string source, string begin, string end) { string result = UrlHelpers.CutHead(source, begin); result = UrlHelpers.CutTail(result, end); return(result); }
/// <summary> /// The thread method of speech /// </summary> /// <param name="speechList">The reference speech list</param> /// <param name="cookieContainer">The user connection cookie container</param> /// <param name="number">The speech page number</param> /// <param name="finish">The reference finish count</param> /// <param name="current">The reference current working speech count</param> private static void MethodSpeech(ref List <Speech> speechList, string cookieContainer, int number, ref int finish, ref int current) { string text = string.Empty; if (UrlHelpers.GetHtml("http://civitas.soobb.com/Forums/Speeches/?SpeechType=1&Page=" + number, ref text, cookieContainer) == 1) { text = UrlHelpers.CutBetween(text, "<div class=\"Speeches\"", "<h4>系统消息"); while (text.Contains("<div class=\"Speech\"")) { text = UrlHelpers.CutHead(text, "<div class=\"Speech\""); int id = Convert.ToInt32(UrlHelpers.CutBetween(text, "speechid=\"", "\"")); string name = UrlHelpers.CutHead(UrlHelpers.CutBetween(text, "<p class=\"Name\"><a href", "</a>:"), "\">"); string t = UrlHelpers.CutTail(UrlHelpers.CutHead(text, ":</p>\r\n\t\t\t<p>"), "</p>"); int like = Convert.ToInt32(UrlHelpers.CutBetween(text, "class=\"Normal\">欢呼</a><span type=\"1\" class=\"Number\">(", ")</span>")); int watch = Convert.ToInt32(UrlHelpers.CutBetween(text, "class=\"Normal\">关注</a><span type=\"3\" class=\"Number\">(", ")</span>")); int dislike = Convert.ToInt32(UrlHelpers.CutBetween(text, "class=\"Normal\">倒彩</a><span type=\"2\" class=\"Number\">(", ")</span>")); string time = UrlHelpers.CutBetween(text, "演讲,第", "</p>"); int day = -1; int hour = 0; int min = 0; try { day = Convert.ToInt32(UrlHelpers.CutTail(time, "天")); hour = Convert.ToInt32(UrlHelpers.CutBetween(time, "天 ", ":")); min = Convert.ToInt32(UrlHelpers.CutHead(time, ":")); } catch { Console.WriteLine("\n时间有个错误,可能是BOSS发言,不带天数和时间"); } speechList.Add(new Speech(id, name, t, like, watch, dislike, new CivitasTime(day, hour, min))); } } finish++; current--; }
public void SeeNeighbor(User user) { if (user.IsLogin) { new Thread(delegate() { if (this.Id < 0) { return; } string text = string.Empty; if (UrlHelpers.GetHtml( "http://civitas.soobb.com/Districts/" + this.Id, ref text, user.CookieContainer) == 1) { this.health = Convert.ToDouble(UrlHelpers.CutHead( UrlHelpers.CutBetween(text, "<div class=\"Subject\">卫生</div>", "%</div>"), "ive\">")); this.prosperity = Convert.ToDouble(UrlHelpers.CutHead( UrlHelpers.CutBetween(text, "<div class=\"Subject\">繁荣</div>", "%</div>"), "ive\">")); this.industry = Convert.ToDouble(UrlHelpers.CutHead( UrlHelpers.CutBetween(text, "<div class=\"Subject\">产业</div>", "%</div>"), "ive\">")); } text = string.Empty; if (UrlHelpers.GetHtml( "http://civitas.soobb.com/Districts/" + this.Id + "/Estates/", ref text, user.CookieContainer) == 1) { string strCount = UrlHelpers.CutBetween(text, "<span class=\"Count\">(共 ", "条)</span>"); int count = Convert.ToInt32(strCount); int pageCount = (count / 20) + 1; for (int i = 1, j = 0; i <= pageCount; i++) { if (UrlHelpers.GetHtml( "http://civitas.soobb.com/Districts/" + this.Id + "/Estates/?Action=Search&Page=" + i, ref text, user.CookieContainer) == 1) { string temp = UrlHelpers.CutHead(text, "<div class=\"Estate StatisticsRow\">"); for (int k = 0; k < 20 & j < count; k++, j++) { string tempt1 = UrlHelpers.CutTail(temp, "<div class=\"Text\">"); string name = UrlHelpers.CutBetween(UrlHelpers.CutHead(tempt1, "<h5>"), "Details/\">", "</a>"); string typestr = UrlHelpers.CutBetween(tempt1, "</a>的", "</div>"); string owner = UrlHelpers.CutHead(UrlHelpers.CutBetween(tempt1, " entityid=\"", "</a>的" + typestr), ">"); string ownerPath = UrlHelpers.CutBetween(tempt1, "<div><a href=\"", "\" class=\"WithEntityCard\" entityid=\""); string estatePath = UrlHelpers.CutBetween(tempt1, "<h5><a href=\"", "\">" + name); double area = Convert.ToDouble(UrlHelpers.CutBetween(UrlHelpers.CutBetween(tempt1, "<div class=\"Text Text2\">", "占地面积"), "Number\">", "</p>")); EstateType type = EstateType.GetEstateType(typestr); if (null == type) { type = new EstateType(typestr); } this.Estates.Add(new Estate(name, type, area, estatePath, owner, ownerPath)); temp = UrlHelpers.CutHead(temp, "<div class=\"Estate StatisticsRow\">"); } Console.Write("[" + this.Name[0] + "]"); } if (j == count) { break; } } } Console.WriteLine("\n窥探【" + this.Name + "】完毕,有种放学别走!"); this.ready = true; }).Start(); } }