2016-12-07 9 views
0

GMパーツのWebサイトから、部品番号の範囲について説明のリストを自動作成しようとしています。ウェブサイトのテキストの一部をExcelセルに取り込む方法

例えば

は、以下の部品番号23498355のためのリンクです - 私はパートの説明テキストをつかむしようとしている http://www.gmpartsdirect.com/oe-gm/23498355

「このABSセンサーは、本物のOEM GMパーツ#23498355で、工場を運びます保証はありません。私たちは、私たちと一緒に注文された場合でも、迅速な出荷で最高のオンライン価格を提供します。このWebページで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 

この作業が完了したら、部品番号のリストのプロセスを自動化することです。 誰でもこのコードを完成させる手助けはできますか?多くの「現代」文書法が実装されない場合がありますので、あなたのHTMLを解析するためにMSHTMLを使用し

答えて

1

は、ビット限られているが、あなたはそれがこのケースで動作させることができます。そこに私のような初心者のために

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 
+0

VBAウィンドウの_Tools - > References .. - > Microsoft HTML Object Library_をクリックして、Microsoft HTMLオブジェクトライブラリを有効にしてください – Vamsi

関連する問題