【问题标题】:How to get the webpage source in ASP.NET C#?如何在 ASP.NET C# 中获取网页源代码?
【发布时间】:2010-12-21 17:11:02
【问题描述】:

如何在 C# ASP.NET 中获取页面的 HTML 代码?

示例:http://google.com

如何通过 ASP.NET C# 获取此 HTML 代码?

【问题讨论】:

  • 不确定您在寻找什么...也许可以稍微整理一下措辞?
  • @justin 你现在可以看了吗
  • 我想你想问的是“我怎样才能获得浏览器在请求网页并将其放入字符串后呈现的 html?”
  • @ sparks 我想获取网页的 html 代码,我不担心图像是否隐藏以及其他一些标记语言问题。我只需要html代码
  • 请不要在“下一个问题”链接中编辑。谢谢。

标签: c# asp.net httpwebrequest methods


【解决方案1】:

WebClient 类会做你想做的事:

string address = "http://stackoverflow.com/";   

using (WebClient wc = new WebClient())
{
    string content = wc.DownloadString(address);
}

如 cmets 中所述,您可能更喜欢使用 DownloadString 的异步版本以避免阻塞:

string address = "http://stackoverflow.com/";

using (WebClient wc = new WebClient())
{
    wc.DownloadStringCompleted +=
        new DownloadStringCompletedEventHandler(DownloadCompleted);
    wc.DownloadStringAsync(new Uri(address));
}

// ...

void DownloadCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    if ((e.Error == null) && !e.Cancelled)
    {
        string content = e.Result;
    }
}

【讨论】:

  • 非常感谢卢克对我的帮助
  • 这将起作用,但您的页面将被阻止,直到后续下载完成。考虑使用异步方法。
  • 别担心,直接回答@stackoverflow.com/questions/1821348/…
【解决方案2】:

HttpWebrequest.GetResponse 的 MSDN 示例有工作代码。

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.getresponse.aspx

【讨论】:

    【解决方案3】:

    如果问题是“如何获取网页的代码隐藏文件”,答案是否定的。

    【讨论】:

    • @anirudha Gupta 警告:请注意 Vedran 答案开头的“IF”。你的问题不是很清楚,所以以后要小心你的措辞,否则你的问题可能会被否决。
    • 原谅它,但我不太懂英语,所以你编辑我的问题
    【解决方案4】:

    如果您计划执行大量 Web 请求来访问 RESTful 服务,请小心使用 HttpWebRequest 对象。回收需要一段时间,如果你有足够的流量(每分钟只有几个调用),你可能会开始出现奇怪的行为。

    如果您要动态加载其他页面,我建议您使用 JavaScript。

    【讨论】:

    • 我不太清楚你的答案的含义,我用它来获取 html 代码而不是其他任何事情
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    相关资源
    最近更新 更多