Beispiel #1
0
        private void Parse1(string[] transport, Type type)
        {
            string[] hrefs = new string[transport.Length - 1];
            for (int i = 1; i < transport.Length; i++)
            {
                if (type == Type.Bus)
                {
                    hrefs[i - 1] = "http://gomeltrans.net/routes/bus/" + transport[i].Split(new char[] { '/' })[0];
                }
                if (type == Type.trolley)
                {
                    hrefs[i - 1] = "http://gomeltrans.net/routes/trolleybus/" + transport[i].Split(new char[] { '/' })[0];
                }
            }

            for (int i = 0; i < hrefs.Length; i++)
            {
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(hrefs[i]);
                //HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://gomeltrans.net/routes/trolleybus/6/");
                HttpWebResponse resp     = (HttpWebResponse)req.GetResponse();
                Stream          stream   = resp.GetResponseStream();
                StreamReader    reader   = new StreamReader(stream, Encoding.GetEncoding(1251));
                string          response = reader.ReadToEnd();
                string          info;

                // left
                string left = ParseBetweenStrings(response, "<td class=\"t-left\">", "<td class=\"t-right\">");
                if (left == "")
                {
                    left = ParseBetweenStrings(response, "<td class=\"t-left\">", "<hr class=\"timetable-divider\">");
                }
                Marshrut marshrutLeft = new Marshrut();
                info = ParseBetweenStrings(left, "<div class=\"t-elem\">", "</table>");
                marshrutLeft.marsh     = ParseBetweenStrings(left, "<div class=\"route-number\">", "</div>");
                marshrutLeft.napr      = ParseBetweenStrings(left, "<td class=\"route-stop1\">", "<tr>").Trim() + " - " + ParseBetweenStrings(left, "<td class=\"route-stop2\">", "</table>").Trim();
                marshrutLeft.type      = type;
                marshrutLeft.ostanovki = GetOstanovki(left);
                marshruts.Add(marshrutLeft);
                BusParsed(marshrutLeft);

                // right
                string right = ParseBetweenStrings(response, "<td class=\"t-right\">", "<hr class=\"timetable-divider\">");
                if (right != "")
                {
                    Marshrut marshrutRight = new Marshrut();
                    info = ParseBetweenStrings(right, "<div class=\"t-elem\">", "</table>");
                    marshrutRight.marsh     = ParseBetweenStrings(right, "<div class=\"route-number\">", "</div>");
                    marshrutRight.napr      = ParseBetweenStrings(right, "<td class=\"route-stop1\">", "<tr>").Trim() + " - " + ParseBetweenStrings(right, "<td class=\"route-stop2\">", "</table>").Trim();
                    marshrutRight.type      = type;
                    marshrutRight.ostanovki = GetOstanovki(right);
                    marshruts.Add(marshrutRight);
                    BusParsed(marshrutRight);
                }
                count++;
                if (count > 1)
                {
                    return;
                }
            }
        }
Beispiel #2
0
 private void Parser_BusParsed(Marshrut bus)
 {
     Invoke(new Action(
                () =>
     {
         textBoxResult.AppendText(Environment.NewLine + "Маршрут №" + bus.marsh + ": " + bus.napr + " " + Environment.NewLine + Environment.NewLine + Environment.NewLine);
     }
                )
            );
 }