用下面的代码下载网页:
Dim XMLObject As XMLHTTP
Set XMLObject = CreateObject("Microsoft.XMLHTTP")
XMLObject.open "GET", "http://hi.baidu.com/jiajiadn2", False
XMLObject.send
Text1.Text = XMLObject.responseText出现了两个奇怪的问题:
1、不知道为什么我用下面的代码访问内容长的网页,比如http://hi.baidu.com/jiajiadn2,得到的内容似乎总不能完全?
2、还有同样的GB2312编码的网页,这个http://www.yuneach.com网页取过来的变成了乱码,而上面那个网页的却能看到汉字?
Dim XMLObject As XMLHTTP
Set XMLObject = CreateObject("Microsoft.XMLHTTP")
XMLObject.open "GET", "http://hi.baidu.com/jiajiadn2", False
XMLObject.send
Text1.Text = XMLObject.responseText出现了两个奇怪的问题:
1、不知道为什么我用下面的代码访问内容长的网页,比如http://hi.baidu.com/jiajiadn2,得到的内容似乎总不能完全?
2、还有同样的GB2312编码的网页,这个http://www.yuneach.com网页取过来的变成了乱码,而上面那个网页的却能看到汉字?
解决方案 »
- GetAttr的返回值问题
- 请教一下vb有x轴和y轴吗如果有具体怎么表示,如果有具体怎么表示x和y轴
- 程序启动的时候自动配置ODBC!
- vb调用word的拼音指南
- TO:fanzai(帆仔)和各位大虾:调用桌面上右键出现的菜单的问题
- 想在msflexgrid 控件每一行记录前加一check box,选中表示当前行
- 向大伙请教一个计算器问题。急!!!!!
- 怎样实在这个功能?当鼠标移到一个IMAGE时,IMAGE就分凸出来,鼠标离开就恢复原状。
- 请高手来看看这段代码!
- 自己做了个触摸屏用的虚拟键盘,如何才能判断窗口处于等待键盘输入状态,然后自动打开虚拟键盘,在不需要键盘输入时隐藏
- VB6菜单快捷键的问题
- 求解释或简化 或者可达到同样目的的更好代码.
testGet
End SubPrivate Sub testGet()
Dim XMLObject As XMLHTTP
Dim strGet As String
Set XMLObject = CreateObject("Microsoft.XMLHTTP")
XMLObject.open "GET", "http://hi.baidu.com/jiajiadn2", False
XMLObject.send
strGet = XMLObject.responseText
Debug.Print Right$(strGet, 100) '看得到是由</html>结尾的
Text1.Text = strGet
RichTextBox1.Text = strGet '看到完整的页面了吧
Debug.Print Text1.MaxLength
End SubPrivate Sub Form_Load()
Text1.MaxLength = 100000 '会报错,虽然MaxLength的定义是long型
End Sub
看看后面的代码和输出就明白了,后一个在HTTP头里没有charset=GB2312,且网页内容中的title元素竟然放到说明文件编码格式的重要的http-equiv="Content-Language"型的META元素前面去了,难怪啊难怪!识别出来也算是浏览器的纠错性能好:)
Option ExplicitPrivate Sub Command1_Click()
testGet
End SubPrivate Sub testGet()
Dim XMLObject As XMLHTTP
Dim strGet As String, strurl As String
strurl = "http://hi.baidu.com/jiajiadn2"
Debug.Print "testGet:" & strurl
Set XMLObject = CreateObject("Microsoft.XMLHTTP")
XMLObject.open "GET", strurl, False
XMLObject.send
Debug.Print XMLObject.getAllResponseHeaders
strGet = XMLObject.responseText
Debug.Print "网页内容:"
Debug.Print Left$(strGet, 200)
'Debug.Print Right$(strGet, 100) '看得到是由</html>结尾的
'Text1.Text = strGet
RichTextBox1.Text = strGet '看到完整的页面了吧
'Debug.Print Text1.MaxLength
End SubPrivate Sub Command2_Click()
testGet2End SubPrivate Sub Form_Load()
' Text1.MaxLength = 100000 '会报错,虽然MaxLength的定义是long型
End Sub
Private Sub testGet2()
Dim XMLObject As XMLHTTP
Dim strGet As String, strurl As String
strurl = "http://www.yuneach.com"
Debug.Print "testGet2:" & strurl
Set XMLObject = CreateObject("Microsoft.XMLHTTP")
XMLObject.open "GET", strurl, False
XMLObject.send
Debug.Print XMLObject.getAllResponseHeaders
'strGet = XMLObject.responseText
strGet = StrConv(XMLObject.responseBody, vbUnicode) '经由GB2312转为UNICODE显示正常
Debug.Print "网页内容:"
Debug.Print Left$(strGet, 200)
RichTextBox1.Text = strGet '看到完整的页面了吧
End Sub输出:
testGet:http://hi.baidu.com/jiajiadn2
Content-Type: text/html; charset=GB2312
Content-Length: 81347
网页内容:
<!--STATUS OK-->
<html><head><meta http-equiv=content-type content="text/html; charset=gb2312">
<link rel="alternate" type="application/rss+xml" title="订阅该空间的博客文章" href="http://hi.baidu.com/jiajiadtestGet2:http://www.yuneach.com
Content-Length: 10790
Content-Type: text/html
X-Powered-By: PleskWin
X-Powered-By: ASP.NET
网页内容:<HTML>
<HEAD>
<title>普洱茶 三生缘 三生缘普洱茶 普洱小挂件|普洱工艺品</title>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta