我试图从GM Parts网站自动创建一系列零件编号值的描述。
例如,以下是产品编号23498355的链接 - http://www.gmpartsdirect.com/oe-gm/23498355
我试图获取零件描述文字"此ABS传感器是真正的OEM GM部件#23498355并且带有工厂保修。我们提供最优惠的在线价格,并随时随地快速发货。"可在此网页上找到Excel。
我编写了以下代码来获取该信息,但无法完成可以获取此特定信息的最后几行。
Option Explicit
Sub myConnection()
Dim oHtml, myData, Title, cste
Set oHtml = New HTMLDocument
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", "http://www.gmpartsdirect.com/oe-gm/23498355", False
.send
oHtml.body.innerHTML = .responseText
End With
'Rest of the code to grab the exact part description
End Sub
一旦我开始工作,我们的想法是自动化零件清单的过程。 任何人都可以帮我完成这段代码吗?
答案 0 :(得分:1)
使用MSHTML来解析HTML有点受限,因为许多“现代”文档方法可能没有实现,但是你可以在这种情况下使它工作:
Sub myConnection()
Dim oHtml, myData, Title, cste, d
Set oHtml = New MSHTML.HTMLDocument
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", "http://www.gmpartsdirect.com/oe-gm/23498355", False
.send
oHtml.body.innerHTML = .responseText
Set d = myGetElementsByClassName(oHtml, "div", "description_body")
If Not d Is Nothing Then
Debug.Print d.innerText
End If
End With
'Rest of the code to grab the exact part description
End Sub
'return an element given its tag name and class name
Function myGetElementsByClassName(doc, tagName, className) As Object
Dim el As Object
For Each el In doc.getElementsByTagName(tagName)
If el.className = className Then
Set myGetElementsByClassName = el
Exit Function
End If
Next el
Set myGetElementsByClassName = Nothing
End Function