HTML源在Webclient和Web浏览器中有所不同

时间:2014-03-24 06:18:59

标签: c# html webbrowser-control web-crawler meta-tags

我正在创建一个C#4.0应用程序,用于使用Web客户端下载网页内容。

我检查了C#Web客户端中的下载内容,它与浏览器略有不同

内容。 (我在浏览器(Mozilla Firefox)和我的Web客户端功能中提供相同的URL。

网页正确显示内容但我的Web客户端DownloadString返回另一个

HTML。)请参阅下面的Web客户端响应。

Webclient已下载html

<!DOCTYPE html>
<head>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="refresh" content="10; url=/distil_r_captcha.html?Ref=/pgol/4-abbigliamento/3-Roma%20(RM)&distil_RID=956FEC70-B30F-11E3-A9C9-29845DBA1712" />
<script type="text/javascript" src="/ga.1550061718605.js?PID=6D4E4D1D-7094-375D-A439-0568A6A70836" defer></script><style type="text/css">#d__fFH{position:absolute;top:-5000px;left:-5000px}#d__fF{font-family:serif;font-size:200px;visibility:hidden}#electron9158f7e8,#sheltersf1491b2d,#columns375c0195,#sheltersf1491b2d{display:none!important}</style></head>
<body>
<div id="distil_ident_block">&nbsp;</div>
<div id="d__fFH"><OBJECT id="d_dlg" CLASSID="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" width="0px" height="0px"></OBJECT><span id="d__fF"></span></div></body>
</html>

浏览器META标记声明

<meta name="robots" content="noindex,follow"/>

我很无能为力。你能否在

中建议显示不同html的原因

WebBrowser和WebClinet。

修改

对不起我已完成的问题。这不是大写或小写的问题。

网页包含数据列表,实际上我想从下载的

中检索此数据

HTML字符串。但目前的情况是不可能的。因为Webclient已下载

html在没有此数据的情况下重新调整。但是当我尝试在浏览器中导航相同的网址时

它正确显示所有数据。你能否说出差异的原因

在Webbrowser和Webclient中重新编写内容。

请帮忙。

1 个答案:

答案 0 :(得分:1)

嗯,我认为很明显,WebClient和浏览器都以不同的方式显示和解析Web内容,因为它们是由不同的程序员和不同的供应商以不同的方式实现的。

但是,你应该问自己的问题是......它真的重要吗?语义和句法意义完全相同。那么,为什么你需要为此烦恼呢?如果它是大写或小写,或者逗号之后是否有空格,为什么它很重要?这不重要

顺便说一下,对于html中的规范,请参阅以下摘自W3C Working Group Note

  

HTML元素的标记名称可以使用小写和大写字母的任意混合编写,这些字母与本文档的HTML元素部分中给出的元素名称不区分大小写;也就是说,标签名称不区分大小写

基本上,无论是小写还是大写,它仍然是HTML