当我从IE保存网页源时,它与我在C#app中由HttpWebRequest下载的源不同。
我保存了两个文件以供参考。从IE保存的是here,HttpWebRequest保存的是here。
它们在格式化和内容本身方面有所不同。似乎HttpWebRequest下载的那个被破坏了,并且不包含有效数据(从IE保存时非常完美)。
我不知道为什么我无法使用IE实现良好的格式化源。
Reagrds 马里乌什
答案 0 :(得分:1)
我怀疑使用IE下载的那个已经通过手动访问该站点时设置的cookie或会话变量获得了与之关联的状态。使用C#下载的那个将具有所有内容的默认值,因此具有不同的内容。
这很可能是因为file_web文件包含一个名为“LastViewedHotels”的部分,其中包含Arora Manchester的条目。
此外,看起来有用于显示广告的动态内容,这两个文件之间有所不同。
答案 1 :(得分:1)
答案 2 :(得分:1)
通过在你提供的资源上运行KDiff,看起来有一个主要的差异:
<link rel="alternate" type="text/html" hreflang="de"...
看起来它有一个从会话(cookie)生成的ID,所以如果不复制IE cookie标题,你就无法做到这一点。
“引擎盖下”,IE和HttpWebRequest都执行相同的简单任务,即通过套接字将端口80上的以下文本请求发送到HTTP服务器:
GET / HTTP / 1.1
(或1.0 - 以及主机标题)。
如果你在Windows上,你可以尝试一下。安装内置的Windows telnet客户端(添加/删除程序 - > windows功能)或putty然后键入:
GET / HTTP / 1.1(换行符)
主持人:yahoo.com
来自这个,IE和HttpWebRequest类的源将完全相同。如果IE将cookie传递给服务器,以及通常包括的任何额外标头,唯一的区别就在于:
*/*
对于格式化,IE可能会将标签变为空格,反之亦然。 HttpWebRequest将返回原始结果而不进行任何格式化。