当前位置:编程学习 > VB >>

inet控件,获取的网页源码不完整求解

inet获取网页源码。。大多数网站取到的是一小部份。不全。。改用xmlhttp对象正常。。
为什么inet会出取不全源代码的问题?要怎么解决。。?

例如取 www.123cha.com --------------------编程问答-------------------- 现在的网站大多哦度带框架,所以取不全,如果模拟登陆后再提取源码,就不样了 --------------------编程问答--------------------
引用 1 楼  的回复:
现在的网站大多哦度带框架,所以取不全,如果模拟登陆后再提取源码,就不样了
可是我用xmlhttp能取全。。

要是带iframe或其它框架的。只要取代码就可以<iframe src=".."></iframe>  这个框架里调用的地址可以不取。

只取一个指定地址里的html代码。就是inet取不下来。大的只有一小部份。。内容少的就能取全。

呵呵,再帮看看 --------------------编程问答-------------------- 架构不一样的东西怎么对比呢?
Inet 控件里的 HTTP 协议访问过程类似于 MSXML2.ServerXMLHTTP 对象,就是个简化版的 HTTP 通讯协议,和自己用 Sock 发个 HTTP 请求得到的数据一样,不包含其他的动态处理过程,只是单纯的通过 SOCK 发送 HTTP 头并等待返回数据。而 Microsoft.XMLHTTP 对象相当于一套系统,他的工作方式就像 IE 一样,是跟随着 IE 或相关的系统配置进行工作的,如代理、Cookie等,并且具备一定程度的自动化处理能力,还和一些系统过滤器挂钩。还有就是,Microsoft.XMLHTTP 的数据也不见得是最真实的数据,他的数据可能是被某些过滤器处理过的数据,这点我是验证过的。比如你可以通过Chrome和IE做源码对比,就QQ空间吧,你会发现数据不太一样(我这里就是这样),然后哪一个浏览器的是服务器原来的数据呢?你可以用一些网络抓包程序抓取IE或XMLHTTP的请求包,然后用 Sock 完全模拟这个过程,这样得到的数据最真实,结果用 Chrome 取得的数据和自己用 Sock 的是一样的,这就说明 IE 内部或系统内部有过滤机制,而 XMLHTTP 继承了这种机制,所以 XMLHTTP 的数据未必就是最真实的,但如果用 MSXML2.ServerXMLHTTP 和 Inet 控件得到的数据来对比,你会发现,他们都是很干净的存在,区别就在于他们不是一整套完整的系统,只是个简易的通讯协议,所以不受这种影响,但同时也确定了他们之间的差异。
还有,你用 Inet 控件的时候用字节数组来接收数据,然后直接将接收的字节数组存储到文件里观察一下数据是否完整,我估计你用 Inet 控件可能都没用好,要不你下个我写的范例来看看。
http://download.csdn.net/detail/SupermanKing/427336
补充:VB ,  控件
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,