2014-03-12 55 views
0

我试图找出一种方法来从HTML源代码中使用Visual Studio 2010中创建的基于Visual Basic的应用程序提取信息。我想要做的是让系统加载一个网页(基于订单号),并搜索分配给HTML标签的值并返回该值。例如,在下面的HREF字符串:从HTML源提取变量

HREF = “#” 类= “lnk11blue” 的onClick =“parent.gotoPage('/ OE/cllctrshp_.html dlvyId = 26130700 & hdrId = 7205902 & lineId = 21188936 &? ordLnTyp = FEL SVC LINE','dWnd')“> 26130700

我希望该工具可以在”dlvyId =“之后或在href结尾处返回26130700。我遇到的问题是dlvyId会随着每一个命令而改变,可能是hdrId和lineId值,那么有没有办法让我的程序在定位这个字符串之后读取“dlvyId =”之后的值?还是有一种方法让程序在查找字符串之后读取大于克拉的文本?

我会乱搞,看看我能找到什么(并希望张贴一些尝试的代码),但在此期间任何想法/帮助将不胜感激。

编辑:感谢史蒂夫,我有搜索字符串的功能。但是,现在我无法加载页面源代码。我试过下面的代码,但它似乎不工作:

Dim objHttp as object 
Dim strURL As String 
Dim strText As String 
objHttp = CreateObject("MSXML2.ServerXMLHTTP") 
strURL = "http://companywebprd.tc.company.com/oe/cllctrord_.html?order_nbr=" & 
    RMA_Number.Text & "&customer_id=&po_nbr=&ord_date=&ord_cond=0&ord_kind=0&serial_nbr=&item_id= 
    &i_ord_type=&instance=&svcChk=1&custSiteUseId=0&custSiteUseCd=0" 
objHttp.Open("GET", strURL, False) 
objHttp.Send("") 

strText = objHttp.responsetext 

请教?我会继续寻找周围以及

+0

您使用的浏览器的控制? –

+0

嗨罗恩,我没有使用浏览器控制,这将是有益的吗?我对VB的那部分不是很熟悉...... – Alex

+0

是的。您可以导航到您在下面指定的页面,并找到包含“href”的元素。如果你可以包含整个“href”元素,包括它的Id属性(如果它有一个,但是类会做但更复杂)。我会发布一个答案。 –

回答

1

这应该让你开始正确的道路......

Sub test() 
Const mystring = "href='#' class='lnk11blue' onClick='parent.gotoPage('/oe/cllctrshp_.html?dlvyId=26130700&hdrId=7205902&lineId=21188936&ordLnTyp=FEL SVC LINE','dWnd')'>26130700'" 
If InStr(1, mystring, "dlvyId=") <> 0 Then 
    For i = InStr(1, mystring, "dlvyId=") To Len(mystring) 
     If Mid(mystring, i, 1) = "&" Then 
      Exit For 
     End If 
    Next i 
    MsgBox Mid(mystring, InStr(1, mystring, "dlvyId="), (i - InStr(1, mystring, "dlvyId="))) 
End If 
End Sub 
+0

刚刚在Excel中作为测试运行,这几乎完全是我想做的!现在我只需要获得HTML源代码,我应该很好。谢谢史蒂夫! – Alex