这个前面的about:blank怎么去掉?

橘子皮... 2011-04-25 10:32:24
Private Sub Form_Load()
sUrl = "http://www.baidu.com/"
Set xmlhttp = CreateObject("msxml2.xmlhttp")
xmlhttp.open "GET", sUrl, False
xmlhttp.send
Dim x() As Byte
x() = xmlhttp.responsebody
xmlhttp.abort
Set xmlhttp = Nothing

Set htmlfile = New HTMLDocument
htmlfile.designMode = "on"
htmlfile.write StrConv(x(), vbUnicode)
MsgBox htmlfile.links.Item(2)
Set htmlfile = Nothing
End Sub

结果地址前总带有个about:blank,糟糕的是有些机器上前面的是about..
因为无法预测到底是什么?所以问下有没有办法让他消失(不用replace之类的)或直接带上前面的地址?? (对了,我这个baidu是登陆过的,不登陆的话自己调节item()里的数字,有些会出现此现象)

还有个问题,一般说Dim x as XXX然后在程序里再Set x = new xxx,2句可以合成一句Dim x as new xxx,为什么这个例子里不可以直接写 Dim htmlfile As New HTMLDocument 呢????
...全文
1098 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ndsc213456789 2011-04-27
  • 打赏
  • 举报
回复
因为HTMLDocument并不是自己从网上获得的网页,所以如果是链接不是绝对地址的话(<a hare='http://news.baidu.com/1.htm>这种为绝对地址,<a hare=1.htm>这种为相对地址)HTMLDocument是不知道怎么填充成完整地址的。只能用替换的方法。
橘子皮... 2011-04-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 myjian 的回复:]
VB code
Private Sub Form_Load()
Dim I As Long

sUrl = "http://www.yahoo.com/"
Set xmlhttp = CreateObject("msxml2.xmlhttp")
xmlhttp.open "GET", sUrl, False
xmlhttp.send
……
[/Quote]

老马啊,你的我这里显示是about:blank_ylt=AremlimX3WgDRM9tO84T5aybvZx4;_ylu=X3oDMTQ3ZnJnODdiBGEDMTEwNDI2IFN
这样的啊,我前面说了不同的机器前面的字符不一样啊
这都有2种可能了,那万一再出第3种可能呢? htmlfile里应该有个属性可以设置基础地址的吧?找了下有个什么baseurl属性不知道干啥用的
嗷嗷叫的老马 2011-04-27
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Dim I As Long

sUrl = "http://www.yahoo.com/"
Set xmlhttp = CreateObject("msxml2.xmlhttp")
xmlhttp.open "GET", sUrl, False
xmlhttp.send
Dim x() As Byte
x() = xmlhttp.responseBody
xmlhttp.abort
Set xmlhttp = Nothing

Set htmlfile = New HTMLDocument
htmlfile.designMode = "on"
htmlfile.write StrConv(x(), vbUnicode)
For I = 0 To htmlfile.links.length - 1
Debug.Print htmlfile.links.Item(I)
Next
Set htmlfile = Nothing
End Sub

http://www.yahoo.com/bin/set
about:blank#
about:_ylt=Al9geyCCisTzNOpzyHSBpEqbvZx4/SIG=119rip0qb/EXP=1303952394/**http%3A//www.yahoo.com/
about:_ylt=Al9geyCCisTzNOpzyHSBpEqbvZx4/SIG=119rip0qb/EXP=1303952394/**http%3A//www.yahoo.com/
about:_ylt=AoEYteiMYQwLqgJyMmhO6eObvZx4/SIG=11c2jvdhd/EXP=1303952394/**http%3A//search.yahoo.com/
about:_ylt=Ag5t1aHI2WNPsPboNfZS90ObvZx4/SIG=11pkgj9o1/EXP=1303952394/**http%3A//images.search.yahoo.com/images
about:_ylt=AkOjtl3I0uqCAv.4h2XddAKbvZx4/SIG=11ni8j06a/EXP=1303952394/**http%3A//video.search.yahoo.com/video
about:_ylt=Ah.Y8YdqE7HMMXZuLpE2U_ybvZx4/SIG=11imtg132/EXP=1303952394/**http%3A//local.yahoo.com/results
about:_ylt=Akh9cbl7pLnVcngwtJirl7abvZx4/SIG=11k57dco5/EXP=1303952394/**http%3A//shopping.yahoo.com/search
about:_ylt=AnomHWMWc2kjH8MwAC89d_ObvZx4/SIG=1291oeb3v/EXP=1303952394/**http%3A//tools.search.yahoo.com/about/forsearchers.html
about:blank#suggestions
http://search.yahoo.com/;_ylt=Alt9imdDZfLMiAp3NkTMCHWbvZx4
about:_ylt=AvkJo8orHI5_UjYen1kmiYCbvZx4/SIG=118k0sh7j/EXP=1303952394/**http%3A//cn.yahoo.com/
about:_ylt=AvkJo8orHI5_UjYen1kmiYCbvZx4/SIG=118k0sh7j/EXP=1303952394/**http%3A//cn.yahoo.com/
about:_ylt=AuqKoro7jJDwUktPG9GIyMmbvZx4/SIG=118752l7c/EXP=1303952394/**http%3A//my.yahoo.com/
about:_ylt=Aur6lll8QvzP14X0LQAO5IqbvZx4/SIG=11gd84trr/EXP=1303952394/**http%3A//www.yahoo.com/bin/set
about:_ylt=AjyW.y_Y.SAt3XCPJ7RJigWbvZx4/SIG=11c5p07b2/EXP=1303952394/**http%3A//pulse.yahoo.com/y
about:_ylt=AvfhUGXCv2YJZO9UtiwxDBubvZx4/SIG=11c5p07b2/EXP=1303952394/**http%3A//pulse.yahoo.com/y
about:_ylt=Ap_eWTTot5yOsXgYi3PrC1SbvZx4/SIG=11c5p07b2/EXP=1303952394/**http%3A//pulse.yahoo.com/y
about:_ylt=Ah3d4svjfhigMGcFREIMzlubvZx4/SIG=11bvc7v6v/EXP=1303952394/**http%3A//pulse.yahoo.com/
about:_ylt=AlWuoAK88UYUKD4kAaPxDGWbvZx4/SIG=12uihv14v/EXP=1303952394/**https%3A//edit.yahoo.com/config/eval_profile%3F.done=http%3A//www.yahoo.com/
about:_ylt=AgzqnqrO45lNRHLxpl5gwCKbvZx4/SIG=11c5p07b2/EXP=1303952394/**http%3A//pulse.yahoo.com/y
about:_ylt=AjyfqhhYU2G8qITqik8KW.2bvZx4/SIG=13s5rk78c/EXP=1303952394/**https%3A//login.yahoo.com/config/login%3F.src=fpctx%26logout=1%26.direct=1%26.done=http%3A//www.yahoo.com/
about:blank#
http://mail.yahoo.com/;_ylt=Ai6sXiyMDU5HXZd0PavKCl.bvZx4?.intl=us
about:_ylt=Ap_KgLYYAvvLSVW4TJJW0qebvZx4/SIG=11b2u4jqj/EXP=1303952394/**http%3A//autos.yahoo.com/
about:_ylt=AiHJamj5GCbCw4DvDD1UxbubvZx4/SIG=12hi8rljq/EXP=1303952394/**http%3A//yahoo.match.com/%3Ftrackingid=526100%26bannerid=673168
about:_ylt=Ai6fgmf2sz55U1IXi36ArWObvZx4/SIG=11d5nmr0d/EXP=1303952394/**http%3A//finance.yahoo.com/
about:_ylt=AoK0.3erjL6FNm5NnMZ5J8ibvZx4/SIG=11bqr1b0q/EXP=1303952394/**http%3A//games.yahoo.com/
about:_ylt=Ao8XJoO3c_X5HFFLzwoDK.SbvZx4/SIG=11c11n82m/EXP=1303952394/**http%3A//health.yahoo.net/
about:_ylt=AuG7XbpBi8vSo5LmLdFWBM6bvZx4/SIG=11lu6319c/EXP=1303952394/**http%3A//shine.yahoo.com/astrology/
about:_ylt=AmVZUSHSlmb4O7mBbHQBfECbvZx4/SIG=125qej2cm/EXP=1303952394/**http%3A//www.monster.com/%3FWT.mc_n=yta_trough_main
about:_ylt=AuWLYEUUX51vxDrrh7DElk2bvZx4/SIG=11itiv1su/EXP=1303952394/**http%3A//us.messenger.yahoo.com/
about:_ylt=Aop7YxoayKEbwGCbEEE1At.bvZx4/SIG=11ci04d8r/EXP=1303952394/**http%3A//movies.yahoo.com/
about:_ylt=AtqWECgfVXJB9LZJlVhUyZqbvZx4/SIG=119ca7aqh/EXP=1303952394/**http%3A//omg.yahoo.com/
about:_ylt=AvPCL8UviKb9Guml3zBwo6ebvZx4/SIG=11g2la4sr/EXP=1303952394/**http%3A//realestate.yahoo.com/
about:_ylt=AusSNGt.iozj04d9ySZPxbibvZx4/SIG=11b65sv56/EXP=1303952394/**http%3A//shine.yahoo.com/
about:_ylt=AvWKy9LEzF69AfXHFSgXXi2bvZx4/SIG=11e97kg64/EXP=1303952394/**http%3A//shopping.yahoo.com/
about:_ylt=AvSIbsHazbBDmP9H_ELtYQ2bvZx4/SIG=11c4krvne/EXP=1303952394/**http%3A//sports.yahoo.com/
about:_ylt=ApQE1Lt0HwU.0YOmHhnQnx6bvZx4/SIG=11cd7qpmm/EXP=1303952394/**http%3A//travel.yahoo.com/
about:_ylt=AuynccmUisyC_8Z7quvO0n2bvZx4/SIG=11bvc7v6v/EXP=1303952394/**http%3A//pulse.yahoo.com/
about:_ylt=Ao6pespzSN5myS.6t7SckfObvZx4/SIG=125puqldn/EXP=1303952394/**http%3A//weather.yahoo.com/forecast/CHXX0098_c.html
about:_ylt=Ai0l_PPN2OV8dDRw7qWSl8ybvZx4/SIG=11g1aa6d6/EXP=1303952394/**http%3A//everything.yahoo.com/
about:_ylt=At8DEsgShhP323tL73NnD46bvZx4/SIG=11c60hbu9/EXP=1303952394/**http%3A//www.facebook.com/
about:_ylt=AnRjJEujpJ9cxaZFDKxDGdWbvZx4/SIG=11b32h14e/EXP=1303952394/**http%3A//www.twitter.com/
javascript:void(0);
http://help.yahoo.com/l/us/yahoo/homepage/homepage/quicklinks_migration/migratelinks.html
http://my.yahoo.com/add/page?id=myy_metro&mintl=us
about:_ylt=AremlimX3WgDRM9tO84T5aybvZx4;_ylu=X3oDMTQ3ZnJnODdiBGEDMTEwNDI2IFNFRyBnYW1lcyBwbGF5c3RhdGlvbiBuZXR3b3JrIGRvd24gdARjcG9zAzEEZwNpZC04NjYzNwRpbnRsA3VzBGl0YwMwBHBrZ3YDMjAEcG9zAzEEc2VjA3RkLWZlYXQEc2xrA2ltYWdlBHRlc3QDNzAxBHdvZQMxMjcxMzczOA--/SIG=13dtmr0t8/EXP=1303952394/**http%3A//blog.games.yahoo.com/blog/631-sony-issues-warning-after-playstation-network-attack
about:_ylt=Avh2cQm_UYlz.DL8pajsT96bvZx4;_ylu=X3oDMTQ3c2twcWI0BGEDMTEwNDI2IFNFRyBnYW1lcyBwbGF5c3RhdGlvbiBuZXR3b3JrIGRvd24gdARjcG9zAzEEZwNpZC04NjYzNwRpbnRsA3VzBGl0YwMwBHBrZ3YDMjAEcG9zAzIEc2VjA3RkLWZlYXQEc2xrA3RpdGxlBHRlc3QDNzAxBHdvZQMxMjcxMzczOA--/SIG=13dtmr0t8/EXP=1303952394/**http%3A//blog.games.yahoo.com/blog/631-sony-issues-warning-after-playstation-network-attack

//

以上是我这里输出的结果的一部分.

看样子"about:"这个串是一定有的,那么就可以直接替换掉它.
橘子皮... 2011-04-26
  • 打赏
  • 举报
回复
有啊有啊,我那个程序是百度登陆帐号后西恶毒,你一个个遍列links总会出现地址前面是about:blank什么之类的啊
嗷嗷叫的老马 2011-04-26
  • 打赏
  • 举报
回复
好象没发现这情况.
  • 打赏
  • 举报
回复
友情帮顶。。。
0 到 10 ,只有2的奇怪,其他的都正常如“http://image.baidu.com/”,2的应该是:“http://www.baidu.com/gaoji/preferences.html”
dbcontrols 2011-04-25
  • 打赏
  • 举报
回复
“因为无法预测到底是什么?”这是句汉语么?
dbcontrols 2011-04-25
  • 打赏
  • 举报
回复
把Set htmlfile = Nothing去掉
橘子皮... 2011-04-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 myjian 的回复:]

sorry,看走眼了.

你的代码中肯定需要引用HTML库,而无法直接Dim htmlfile As New HTMLDocument的原因曾经在某篇文章上看到过,是因为HTMLDocument对象的接口什么的不能直接实例化,而要将实例绑定到一个接口中.具体描述忘了.

所以完整的代码应该是这样子的:

VB code
dim oHTML as IHTMLDocument ……
[/Quote]

哦,事实上我没写dim oHTML as IHTMLDocument 直接就set oHTML = new htmldocument了
说下第一个问题吧,那个about:blank怎么让他去掉呢?
嗷嗷叫的老马 2011-04-25
  • 打赏
  • 举报
回复
sorry,看走眼了.

你的代码中肯定需要引用HTML库,而无法直接Dim htmlfile As New HTMLDocument的原因曾经在某篇文章上看到过,是因为HTMLDocument对象的接口什么的不能直接实例化,而要将实例绑定到一个接口中.具体描述忘了.

所以完整的代码应该是这样子的:

dim oHTML as IHTMLDocument      '接口

set oHTML = new htmldocument '对象实例
嗷嗷叫的老马 2011-04-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 wowfiowow 的回复:]还有个问题,一般说Dim x as XXX然后在程序里再Set x = new xxx,2句可以合成一句Dim x as new xxx,为什么这个例子里不可以直接写 Dim htmlfile As New HTMLDocument 呢????[/Quote]
这个例子使用了CreateObject来创建对象.那说明并未在工程中引用这个库,因此无法使用前期绑定.

7,763

社区成员

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

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