Пример #1
0
        /// <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("潜入失败,肯定是你的打开方式不对!");
                //}
            }
        }
Пример #2
0
 public Neighbor(int id, string name, User user)
 {
     this.id = id;
     this.name = name;
 }
Пример #3
0
        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();
            }
        }
Пример #4
0
        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;
        }