【问题标题】:Webclient.DownloadString does not retrieve the whole pageWebclient.DownloadString 不检索整个页面
【发布时间】:2016-02-08 15:16:24
【问题描述】:

我正在尝试使用 WebClient.DownloadString 检索 site 的源代码,但是当我调试字符串时,我正在将源代码写入它似乎切断了 html 源代码的一部分。

VS 中的文本可视化器:

浏览器调试:

代码:

public string GetWebpageSource()
{
    using (WebClient client = new WebClient())
    {
        client.Headers[HttpRequestHeader.UserAgent] = "Mozilla / 5.0(Windows NT 10.0; Win64; x64; rv: 44.0) Gecko / 20100101 Firefox / 44.0";
        client.Encoding = Encoding.UTF8;
        string htmlcode = client.DownloadString("http://2007.runescape.wikia.com/wiki/Bandos%20page%201");
        return htmlcode;
    }
}

所以我想知道为什么会这样?如果需要其他信息,我会发布。感谢阅读!

【问题讨论】:

  • 这可能会有所帮助stackoverflow
  • 我想知道这是否不是可视化工具中的优化。打开无限长的文本可能是一个出乎意料的贪婪操作。
  • @Isuru 我的请求中有用户代理标头
  • @spender 很确定不是,我正在尝试使用正则表达式获取部分 html 代码,但它无法找到它,而它存在于浏览器 html 代码中
  • @Denny 你误会了。您的数据很好,正是调试器的可视化工具导致您错误地假设 WebClient 已损坏。字符串的下载没有问题。将其写入文件证明是这种情况。现在你需要弄清楚你的正则表达式失败的原因。这不是因为你认为的原因。

标签: c# webclient downloadstring


【解决方案1】:

感谢来自 SO 的人们,我发现了“问题”。 VS 中的文本可视化器提示我文本已被截断,但这不是将源代码写入文件时的问题。所以我认为它没有下载整个页面,因为文本可视化器中的文本。所以我学到的教训是不要相信文本可视化器!

通过从文本文件中进一步调试,我可以解决我的问题 :)

【讨论】:

  • 谢谢,这节省了我一些时间!
猜你喜欢
  • 2021-06-02
  • 2011-04-27
  • 1970-01-01
  • 1970-01-01
  • 2013-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-03
相关资源
最近更新 更多