在c#中阅读网页iframe内容

时间:2014-06-20 10:52:56

标签: c# html iframe web-scraping webclient

我最近一直在使用C#中的WebClient下载网页内容。 WebClient的DownloadString方法无法从iframe下载内容。

下载内容的简短代码用作:

   using (var client = new WebClient())
   {
        string html = client.DownloadString("url");
   }

我需要使用什么来阅读C#中的iframe内容?

对于测试,我使用的是http://multiprofits.co.uk/oddsmatcher.html网站,其中包含iframe。

1 个答案:

答案 0 :(得分:2)

您必须在主页面中搜索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);
}

对于正则表达式,您可以使用此Regular Expression to get the SRC of images in C#

编辑:

        using (var client = new WebClient())
        {
            string html = client.DownloadString("http://multiprofits.co.uk/oddsmatcher.html");
            string src = Regex.Match(html, "<iframe.+?src=[\"'](.+?)[\"'].*?>", RegexOptions.IgnoreCase).Groups[1].Value;
            Console.Write(client.DownloadString(src));
        }

你真的得到了这个代码的iframe源

Edit2:

我找到了你的问题。这是该网站的安全问题。在新浏览器中启动iframe网址,您将收到以下消息:

oddsmatcher不允许在此域名上运行 [v2.oddsmatcher-data.co.uk/v2.oddsmatcher-data.co.uk] 有关详细信息,请联系support@oddsmonkey.com

因此您必须无法直接下载iframe源代码。您可能必须使用WebBrowser或类似的东西