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; } } }
private void Parser_BusParsed(Marshrut bus) { Invoke(new Action( () => { textBoxResult.AppendText(Environment.NewLine + "Маршрут №" + bus.marsh + ": " + bus.napr + " " + Environment.NewLine + Environment.NewLine + Environment.NewLine); } ) ); }