- ベストアンサー
エクセルVBAでネット上のデータ抜き取り
- アマゾンのページにある本のベストセラーのデータをエクセルのファイルに反映させたいです。
- 週のベストセラーが表示されており、銘柄名、出版社、ISBN-10、ISBN-13、発売日を抜き取ります。
- データ取得のコマンドボタンを押すと、1位から20位までのデータが一気に表示されます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
取りあえず下記で抽出は出来ました。 セルへの書き込みは追加編集してください。 Dim myWindow As Object Dim myurl As String Dim tagdiv As Object Dim tagli As Object Dim ahrefs() As String Dim i As Long myurl = "http://www.amazon.co.jp/gp/bestsellers/books/466 *" For Each myWindow In CreateObject("Shell.Application").Windows With myWindow If .LocationURL Like "http://www.amazon.co.jp/gp/bestsellers/books/466*" Then For Each tagdiv In .document.all.tags("div") If tagdiv.ID Like "zg_item_*" Then ReDim Preserve ahrefs(i) ahrefs(i) = tagdiv.all.tags("a")(0).href i = i + 1 End If Next For i = LBound(ahrefs) To UBound(ahrefs) .navigate2 ahrefs(i) Do While .Busy = True Or .readyState <> 4 DoEvents Loop MsgBox Split(.document.all("btAsinTitle").innerText, "[")(0) For Each tagli In .document.getElementsByTagName("li") If tagli.innerText Like "出版社*" Then MsgBox tagli.innerText ElseIf tagli.innerText Like "ISBN-10*" Then MsgBox tagli.innerText ElseIf tagli.innerText Like "ISBN-13*" Then MsgBox tagli.innerText ElseIf tagli.innerText Like "発売日*" Then MsgBox tagli.innerText Exit For End If Next .GoBack Do While .Busy = True Or .readyState <> 4 DoEvents Loop Next i End If End With Next myWindow
お礼
ありがとうございました!!