【问题标题】:in C#, how can I get the HTML content of a website before displaying it?在 C# 中,如何在显示之前获取网站的 HTML 内容?
【发布时间】:2012-12-18 05:49:05
【问题描述】:

我有一个 C# 中的网络浏览器项目,我正在考虑这样的系统;当用户输入网址然后点击“开始”按钮时,我的浏览器会获取所写网站的内容(它不应该访问该页面,我的意思是它不应该显示任何内容),然后我想看看对于 ex 的特定“关键字”; “暴力”,如果存在,我可以将该浏览器导航到有警告的本地页面。不久,在 C# 中,如何在访问之前获取网站的内容?...

对不起我的英语, 提前致谢!

【问题讨论】:

  • 你不能在 C# 或任何其他语言中做到这一点。这就像在不读取文件的情况下要求获取文件的内容。您似乎想要的是有一个代理服务器,它将重定向某些检查的内容。
  • @Oded 如果我没看错的话,这更像是要求获取文件的内容而不在文本编辑器中打开它们。
  • @delnan - 我发现这个问题不清楚。如果 OP 希望在浏览器尝试访问的页面上存在某些内容的情况下将浏览器重定向到不同的页面,则有现有的解决方案 - 使用代理。
  • 问题解决了伙计们.. 非常感谢你们,我没有尝试过 Hall72215 和 Jim O'Neil 的解决方案,他们可能是正确的,但 Giesi 的解决方案解决了我的问题。但请确保您的网址以“http://” 开头

标签: c# html browser web


【解决方案1】:

System.Net.WebClient:

string url = "http://www.google.com";
System.Net.WebClient wc = new System.Net.WebClient();
string html = wc.DownloadString(url);

【讨论】:

    【解决方案2】:

    您必须使用 WebRequest 和 WebResponse 来加载站点:

    示例:

    string GetPageSource (string url)
    {
    HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create(url);
    webrequest.Method = "GET";
    HttpWebResponse webResponse = (HttpWebResponse)webrequest.GetResponse();
    string responseHtml;
    using (StreamReader responseStream = new StreamReader(webResponse.GetResponseStream()))
    {
        responseHtml = responseStream.ReadToEnd().Trim();
    }
    
    return responseHtml;
    }
    

    之后,您可以检查一些关键字的 responseHtml...例如使用 RegEx。

    【讨论】:

    • 首先非常感谢,我的代码是这样的;字符串 url= urlComboBox.Text;字符串 html = GetPageSource(url); if (html.Contains("violence")) { MessageBox.Show("这里是禁止的", "Opps!!!"); getCurrentBrowser().Navigate(@"W:\yasak.html"); } else { getCurrentBrowser().Navigate(urlComboBox.Text);但在你的方法的第一行..它给 UriException 说“未知的 URI 格式”在 ...Create(url);
    • 你的代码成功了!非常感谢@Giesi,我只是忘记在网址前面添加“http://”标签。然后它运作良好.. 非常感谢你... :)
    • 没问题...这就是我们在这里的原因;)
    【解决方案3】:

    您可以发出 HTTP 请求(通过HttpClient 到该站点)并解析结果以查找各种关键字。然后,您可以决定是否将用户“导航”到那里。

    开发中心上有一个 HTTP client sample 可能会有所帮助。

    【讨论】:

    • 刚刚意识到我是在 Windows 应用商店应用的背景下回答这个问题的,但在更广泛的情况下仍然适用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    相关资源
    最近更新 更多