C#WebClient仅下载部分html

C#WebClient仅下载部分html,c#,webclient,C#,Webclient,我正在开发一些刮削应用程序,我想尝试让它工作,但遇到了一个问题。我已经用谷歌网页替换了下面代码中的原始抓取目的地,只是为了测试。我的下载似乎没有得到所有的东西,我注意到body和html标记缺少了close标记。如何让它下载所有内容?我的示例代码有什么问题: string filename = "test.html"; WebClient client = new WebClient(); string searchTerm = HttpUtility.UrlEncod

我正在开发一些刮削应用程序,我想尝试让它工作,但遇到了一个问题。我已经用谷歌网页替换了下面代码中的原始抓取目的地,只是为了测试。我的下载似乎没有得到所有的东西,我注意到body和html标记缺少了close标记。如何让它下载所有内容?我的示例代码有什么问题:

string filename = "test.html";

WebClient client = new WebClient();            
string searchTerm = HttpUtility.UrlEncode(textBox2.Text);            
client.QueryString.Add("q", searchTerm);
client.QueryString.Add("hl", "en");
string data = client.DownloadString("http://www.google.com/search");

StreamWriter writer = new StreamWriter(filename, false, Encoding.Unicode);
writer.Write(data);
writer.Flush();
writer.Close();

…谷歌的页面没有
的结束标签。谈论疯狂的优化…

…谷歌的页面没有
的结束标签。谈论疯狂的优化…

http://www.google.com/search
没有结束标记。

http://www.google.com/search
没有关闭标签。

谷歌的网页现在是HTML5,这意味着
正文和
HTML
标签可以自动关闭-这就是谷歌省略它们的原因(信不信由你,这为他们节省了带宽。)

您可以在“HTML/SGML”模式下编写HTML5(这允许省略关闭标记,就像HTML在XHTML之前所做的那样),或者在遵循XML规则的“XHTML”中编写HTML5,要求关闭所有标记


浏览器选择解析页面的方式取决于您是发送html/SGML语法的
Content-type
标题
text/html
,还是发送xhtml语法的
application/xhtml+xml
。(来源:)

谷歌的网页现在是HTML5格式,这意味着
主体和
HTML
标签可以自动关闭-这就是谷歌省略它们的原因(信不信由你,这样可以节省带宽。)

您可以在“HTML/SGML”模式下编写HTML5(这允许省略关闭标记,就像HTML在XHTML之前所做的那样),或者在遵循XML规则的“XHTML”中编写HTML5,要求关闭所有标记


浏览器选择解析页面的方式取决于您是发送html/SGML语法的
Content-type
标题
text/html
,还是发送xhtml语法的
application/xhtml+xml
。(来源:)

@walther:OP抱怨关闭标签没有被下载。我解释说它们没有被下载。这怎么不是一个答案呢?这和当你有一个问题“我怎样才能在GridView中选择一个项目?”而你回答“是的,你可以!”.你在这里说的是显而易见的事情,没有对发生的事情作进一步解释。这就是为什么我觉得你的帖子没有多大用处。仅此而已;-)不是针对个人的。@walther:别担心,我不会针对个人的批评;我只是不同意你的评估。你的类比是不合适的,因为没有结束标记对OP来说一点也不明显,OP认为他们的代码在某种程度上丢弃了结束标记。如果OP问谷歌为什么不下载这些标签,你的批评应该是有根据的(但我不会以这种方式开始回答)。@walther:OP抱怨没有下载关闭的标签。我解释说它们不是用来下载的。这怎么不是一个答案呢?嗯,这和你问“我如何在GridView中选择一个项目?”时回答“是的,你可以!”时的答案是一样的。你在这里说的是显而易见的事情,没有进一步解释发生了什么。这就是为什么我不觉得你的帖子很有用。就这些;-)沃尔特:别担心,我不把批评当回事;我只是不同意你的评估。你的类比是不合适的,因为没有结束标记对OP来说一点也不明显,OP认为他们的代码在某种程度上丢弃了结束标记。如果OP问到谷歌为什么不加标签,你的批评会是有根据的(但我不会以这种方式开始回答)。