Приветствую всех! Сегодня хочу продемонстрировать пример того как можно отпарсить интернет страницу. В примере ниже будет строка содержащая теги html, мы воспользуемся регулярными выражениями и выведем все ссылки из текста:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
string input = ""; input+="Тут у нас может быть любой текс <a href ='http://nookery.ru'>Home-page</a> Который не имеет значения."; input += "Это могут и быть как разметка, так и разные атрибуты html <a href ='http://nookery.ru'>Search</a> Нашей целью"; input += "Показать пример того как <a href ='http://yandex.ru'>ya</a> Можно выдернуть ссылки из страници"; var regex = new Regex(@"<a href ='(?<link>\S+)'>(?<text>\S+)</a>"); Console.WriteLine(input); for(Match m=regex.Match(input);m.Success;m=m.NextMatch()) { Console.WriteLine("Ссылка: {0,-25} на:{1,-4} позиция с именем: {2}", m.Groups["link"], m.Groups["link"].Index, m.Groups["text"]); } Console.WriteLine(new string('-', 25)); foreach(Match m in regex.Matches(input)) { Console.WriteLine("Ссылка: {0,-25} на:{1,-4} позиция с именем: {2}", m.Groups["link"], m.Groups["link"].Index, m.Groups["text"]); } Console.WriteLine(new string('-', 25)); var htmlQuery = from Match m in regex.Matches(input) where m.Groups["link"].Value.StartsWith("http:") select m; foreach(var m in htmlQuery) { Console.WriteLine("Ссылка: {0,-25} на:{1,-4} позиция с именем: {2}", m.Groups["link"], m.Groups["link"].Index, m.Groups["text"]); } |
В примере выше представлены, три варианта того как это можно сделать, какой из предложенных вариантов воспользуетесь вы, решать вам!