投稿/コメントを表示します。

セブンイレブンのおにぎり紹介ページより、おにぎりの名前を取得することに成功しました。

企業のWebページの作りは複雑すぎて、ブラウザからHTMLを確認した時は、もう読めないと思いました。(T_T)
しかし、一度Bodyの部分を、このコースで使っているマクロを使ってExcelに取り込んで、更にメモ帳にはりつけて
全体を眺めたら、商品名を発見し、このページに関してはなんとかその部分だけは仕組みが分かったかなという感じです。
例題のプログラムを再利用して、ちょこっと書き直しただけですが、、動いた時は本当に嬉しかったです。(^^)

HTMLの中身はこんな感じ。
<div class=""list-inner-~~~"">
<figure> 写真
<div class=""detail"">
<div class=""item_ttl"">  商品のおにぎりの名前
<div class=""item_price"">  価格
<div class=""item_region""> 販売地域
'以下に紹介するライブラリの参照設定をしてください
'Microsoft WinHTTP Services, version 5.1 -> HTTPリクエストをするため
'Microsoft HTML Object Library -> コンテンツのDOMを解析するため
Sub GetRequestSimple1()
    Dim url As String
    url = "https://www.sej.co.jp/products/a/onigiri/"

    Dim xh As New WinHttp.WinHttpRequest
    xh.Open "GET", url, False
    xh.send
    
    Dim sCode As String
    sCode = xh.Status
    If sCode <> 200 Then
        MsgBox "リクエストに失敗しました" & vbNewLine & sCode
    End If
    
    'htmlをDOMとして取得する。そのための変数を宣言。
    Dim oHTml As New MSHTML.HTMLDocument
    oHTml.body.innerHTML = xh.ResponseText 'htmlボディーをDOMとして取得
    
    'oH2--> 1つのおにぎり紹介のdiv(この中に、商品名や値段の情報が記載)
    'oH3-->商品名のdiv
    Dim oH2 As MSHTML.HTMLHeadElement
    Dim oH3 As MSHTML.HTMLHeadElement
    For Each oH2 In oHTml.getElementsByClassName("list_inner")
        For Each oH3 In oH2.getElementsByClassName("item_ttl")
            Debug.Print oH3.innerText '商品名(おにぎり名)を書き出し
        Next
    Next
End Sub

2020/12/30 14:21