如何用vb在VB的网页中截取指定的字符,并显示在text1.text中 百度牛人多,超高分

<input name="session_token" type="hidden" value="5497125dffec1a2f67fbe3d6af83e5a9383941c1"/></form>

===================================
网页代码不只有是上面一段,还有很多,不过我只要value="XXXXXXX",xxxx这个值
百度牛人多,超高分希望详细解答,有源码最好

真巧,我也在研究获取网页这方面的内容。你说的截取功能可以用Split函数实现,他的作用举个例子:
假设一段字符串Str1="left ABC middle ABC right"
那么Split(Str1,"ABC")(0)="left ",把0改为1就得到" middle ",改为2就得到" right"
要实现你要的功能,把网页内容存放到Text2中(Text2.Multiline = True),然后
Text1.Text = Split (Text2.Text,"value=""") (1) 'vb中用两个双引号表示文本中的一个双引号
Text1.Text = Split (Text2.Text,"""/></form>") (0)
对了分隔符最好长一点,不然可能会截取错误
好了上面是废话,接下来进入正题
在窗体中放置一个Text1和Text2,其中Text2.Multiline=True,代码如下:
Option Explicit
Private Function GetWebTxt(Url)
Dim objWMD As Object: Set objWMD = CreateObject("Microsoft.XMLHTTP")
objWMD.Open "GET", Url, False
objWMD.Send
GetWebTxt = StrConv(objWMD.responseBody, vbUnicode)
End Function
Private Sub Form_Load()
Dim UrlWeb$: UrlWeb = "目标网址" '在这里修改网址
Text2.Text = GetWebTxt(UrlWeb)
Text1.Text = Split (Split (Text2.Text,"value=""")(1) , """/></form>")(0) '把上面两个截取函数嵌套在一起
End Sub追问

HI 我加你了,上面聊

追答

'已修改,下面的代码可以获取本网页里的value值,亲测通过
'记得修改&gt
Option Explicit
Private Function GetWebTxt(Url)
Dim objWMD As Object: Set objWMD = CreateObject("Microsoft.XMLHTTP")
Randomize
objWMD.Open "GET", Url & "?t=" & Rnd * 100000, False
objWMD.Send
GetWebTxt = StrConv(objWMD.responseBody, vbUnicode)
Set objWMD = Nothing
End Function
Private Sub Form_Load()
Dim UrlWeb$: UrlWeb = "http://zhidao.baidu.com/question/297965446.html" '在这里修改网址
text2.Text = GetWebTxt(UrlWeb)
Text1.Text = Split(Split(text2.Text, "input name=""session_token"" type=""hidden"" value=""")(1), """/ &gt")(0) '注意复制后把&gt改成半角的(无空格)
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-26
Private Sub Command1_Click()
a = InStr(InStr(1, text4, "session_token"), text4, "value=")
MsgBox Mid(text4, a + 7, InStr(a, text4, "/") - a-7)
End Sub
第2个回答  2011-07-27
以下代码经测试可行
Private Sub Command1_Click()
Dim strA, strB, strC, strRe, strRes
'-----从text2中找出和text1重复的部分-----
strA = Text1.Text
strB = Text2.Text
For i = 1 To Len(strA)
strB = Replace(strB, Mid(strA, i, 1), "")
Next
strC = strB
'-----从text1中找出和text2重复的部分-----
strA = Text2.Text
strB = Text1.Text
For i = 1 To Len(strB)
strB = Replace(strB, Mid(strA, i, 1), "")
Next
strC = strC & strB
'-----过滤结果中重复的部分-----
For i = 1 To Len(strC)
strRe = Mid(strC, i, 1)
strRes = Replace(strC, strRe, "", , 1)
If InStr(1, strRes, strRe, vbTextCompare) <> 0 Then
strC = Replace(strRes, strRe, "") & strRe
End If
Next
Text3.Text = strC
End Sub
另外,站长团上有产品团购,便宜有保证