Недавно я работал над загрузкой содержимого веб-страницы с использованием WebClient в C #. Метод DownloadString
WebClient не может загрузить контент из iframe.
Короткий код для загрузки контента использовался как:
using (var client = new WebClient()) { string html = client.DownloadString("url"); }
Что мне нужно использовать для чтения содержимого iframe на C #?
Для тестирования я использую сайт http://multiprofits.co.uk/oddsmatcher.html, в котором есть iframe.
Вам нужно искать тег iframe на главной странице, а затем взять атрибут src для загрузки страницы в iframe
using (var client = new WebClient()) { string html = client.DownloadString("url"); string src = ... //find iframe source with regex string iframe = client.DownloadString(src); }
Для регулярного выражения вы можете использовать это регулярное выражение для получения SRC изображений в C #
Редактировать :
using (var client = new WebClient()) { string html = client.DownloadString("http://multiprofits.co.uk/oddsmatcher.html"); string src = Regex.Match(html, "", RegexOptions.IgnoreCase).Groups[1].Value; Console.Write(client.DownloadString(src)); }
Вы действительно получаете источник iframe с этим кодом
Редактировать2:
Я нашел вашу проблему. Это проблема безопасности с сайта. Запустите iframe url в новом браузере, вы получите это сообщение:
oddsmatcher не разрешено запускать это доменное имя [v2.oddsmatcher-data.co.uk/v2.oddsmatcher-data.co.uk] Для получения дополнительной информации, пожалуйста, cotact support@oddsmonkey.com
Поэтому вы не можете напрямую загрузить источник iframe. Вероятно, вам придется использовать WebBrowser или что-то вроде этого