/// <summary> /// The entry point of the program, where the program control starts and ends. /// </summary> /// <param name="args">The command-line arguments.</param> public static void Main(string[] args) { string name = ConsoleHelpers.GetInput(false); string pwd=ConsoleHelpers.GetInput(true); if (args.Length < 2) { Console.WriteLine("老兄啊,不打用户名密码怎么潜入啊……格式就是后面加上空格email空格密码"); return; } User user = new User(args[0], args[1]); //User user = new User("*****@*****.**", "90lyrebirdYECHYI"); if (user.Login()) { //Speech.FindSpeech(user.CookieContainer); Console.WriteLine("Enter succeed!"); user.FindNeighbor(); while (!user.Ready) { Console.Write("."); Thread.Sleep(500); } Console.WriteLine("\nTarget City:" + user.City); foreach (Neighbor neighbor in user.Neighbors) { Console.WriteLine("Target Neighbor:" + neighbor.Name); neighbor.SeeNeighbor(user); } while (!user.NeighborsReady) { Thread.Sleep(500); } Console.WriteLine("\nXml File:"); foreach (string path in XmlOut.NeighborOut(user)) { Console.WriteLine(path); } // Console.WriteLine("\nBOSS,你想拿哪个片区开刀,报数字,我来帮你搞定!\n"); // foreach (Neighbor neighbor in user.Neighbors) // { // Console.WriteLine("【" + neighbor.Name + "】" + neighbor.Id); // } // Console.WriteLine("【放他们一马】q(这个好像不是数字,有奇怪的东西混进来了)"); // string c = Console.ReadLine(); // if (c == "q" || c == "Q") // { // Console.WriteLine("\n回老家结婚了!"); // } // else // { // Neighbor n = null; // foreach (Neighbor neighbor in user.Neighbors) // { // if (c == neighbor.Id.ToString()) // { // n = neighbor; // TaxStandard standard = TaxStandard.LoadStandard(""); // n.CheckTax(standard); // } // } // if (null == n) // { // Console.WriteLine("\nBoss,我们迷路了。。。"); // } // } //} //else //{ // Console.WriteLine("潜入失败,肯定是你的打开方式不对!"); //} } }
public Neighbor(int id, string name, User user) { this.id = id; this.name = name; }
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(); } }
public static List<string> NeighborOut(User user) { List<string> xmllist = new List<string>(); if (user.Ready) { foreach (Neighbor neighbor in user.Neighbors) { XmlDocument document = new XmlDocument(); XmlNode table = document.CreateElement("table"); document.AppendChild(table); // 区名,时间 { XmlNode tr = document.CreateElement("tr"); table.AppendChild(tr); XmlNode tdname = document.CreateElement("td"); tdname.InnerText = neighbor.Name; tr.AppendChild(tdname); XmlNode tddate = document.CreateElement("td"); tddate.InnerText = DateTime.Now.ToString(); tr.AppendChild(tddate); } // 卫生繁荣产业 { XmlNode tr = document.CreateElement("tr"); table.AppendChild(tr); { XmlNode tdname = document.CreateElement("td"); tdname.InnerText = "卫生指数" + neighbor.Health + "%"; tr.AppendChild(tdname); } { XmlNode tdname = document.CreateElement("td"); tdname.InnerText = "繁荣指数" + neighbor.Prosperity + "%"; tr.AppendChild(tdname); } { XmlNode tdname = document.CreateElement("td"); tdname.InnerText = "产业指数" + neighbor.Industry + "%"; tr.AppendChild(tdname); } } List<List<Estate>> list = new List<List<Estate>>(); EstateType.EstateTypes.Sort(); foreach (EstateType type in EstateType.EstateTypes) { list.Add(new List<Estate>()); } foreach (Estate es in neighbor.Estates) { list[EstateType.EstateTypes.IndexOf(es.Type)].Add(es); } foreach (List<Estate> item in list) { if (item.Count > 0) { double area = 0; item.Sort(); foreach (Estate estate in item) { area += estate.Area; } // 汇总 { XmlNode tr = document.CreateElement("tr"); table.AppendChild(tr); tr.AppendChild(document.CreateElement("td")); tr.AppendChild(document.CreateElement("td")); XmlNode tdname = document.CreateElement("td"); tdname.InnerText = item[0].Type.Name; tr.AppendChild(tdname); XmlNode tdcount = document.CreateElement("td"); tdcount.InnerText = item.Count.ToString(); tr.AppendChild(tdcount); XmlNode tdarea = document.CreateElement("td"); tdarea.InnerText = area.ToString(); tr.AppendChild(tdarea); } } } // 合计 { XmlNode tr = document.CreateElement("tr"); table.AppendChild(tr); } // 标题栏 { XmlNode tr = document.CreateElement("tr"); table.AppendChild(tr); XmlNode td1 = document.CreateElement("td"); td1.InnerText = "不动产名称"; tr.AppendChild(td1); XmlNode td2 = document.CreateElement("td"); td2.InnerText = "不动产主人"; tr.AppendChild(td2); XmlNode td3 = document.CreateElement("td"); td3.InnerText = "类型"; tr.AppendChild(td3); XmlNode td4 = document.CreateElement("td"); td4.InnerText = "数量"; tr.AppendChild(td4); XmlNode td5 = document.CreateElement("td"); td5.InnerText = "面积"; tr.AppendChild(td5); } // 不动产 foreach (List<Estate> item in list) { if (item.Count > 0) { foreach (Estate estate in item) { XmlNode tr = document.CreateElement("tr"); table.AppendChild(tr); XmlNode td1 = document.CreateElement("td"); tr.AppendChild(td1); XmlElement td1a = document.CreateElement("a"); td1a.SetAttribute("href", "http://civitas.soobb.com" + estate.EstatePath); td1a.InnerText = estate.Name; td1.AppendChild(td1a); XmlNode td2 = document.CreateElement("td"); tr.AppendChild(td2); XmlElement td2a = document.CreateElement("a"); td2a.SetAttribute("href", "http://civitas.soobb.com" + estate.OwnerPath); td2a.InnerText = estate.Owner; td2.AppendChild(td2a); XmlNode td3 = document.CreateElement("td"); td3.InnerText = estate.Type.Name; tr.AppendChild(td3); tr.AppendChild(document.CreateElement("td")); XmlNode td5 = document.CreateElement("td"); td5.InnerText = estate.Area.ToString(); tr.AppendChild(td5); } } } document.Save(neighbor.Name + ".xml"); xmllist.Add(System.Environment.CurrentDirectory + "/" + neighbor.Name + ".xml."); } } return xmllist; }