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

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

例如取 www.123cha.com
...全文
290 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanjiaoxian 2012-09-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

现在的网站大多哦度带框架,所以取不全,如果模拟登陆后再提取源码,就不样了
[/Quote]可是我用xmlhttp能取全。。

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

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

呵呵,再帮看看
孤独剑_LPZ 2012-09-25
  • 打赏
  • 举报
回复
现在的网站大多哦度带框架,所以取不全,如果模拟登陆后再提取源码,就不样了
现在还是人类 2012-09-25
  • 打赏
  • 举报
回复
架构不一样的东西怎么对比呢?
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

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧