更新日:

IEを使わずVBAでスクレイピングする方法。コードをコピペしてすぐ実行可能

コードをコピペしてすぐ実行可能。

実行環境はWindows10。

今回はヤフートップニュースをサンプルとしてスクレイピングする。

ソースコード

source
Sub ヤフートップをスクレイピング()
    Dim document As Object: Set document = CreateObject("htmlfile")

    With CreateObject("MSXML2.ServerXMLHTTP")
        .Open "GET", "https://www.yahoo.co.jp/"
        .send
            Do While .readyState < 4
                DoEvents
            Loop
            
            document.body.innerHTML = .responseText

            If .Status <> 200 Then
              Debug.Print .Status
              Exit Sub
            End If
    End With
    
    Dim i As Integer
    Dim target As Object: Set target = document.querySelector("main article section ul").getElementsByTagName("li")

    For i = 0 To target.Length - 1
        Debug.Print target(i).textContent
        Debug.Print target(i).getElementsByTagName("a")(0).href
        Debug.Print
    Next
    
    Set document = Nothing
    Set httpReq = Nothing
End Sub

実行結果(2022年8月15日14時)

result
首相 追悼式で「歴史の教訓」言及NEW
https://news.yahoo.co.jp/pickup/6435709

北日本と北陸 大雨による災害警戒
https://news.yahoo.co.jp/pickup/6435702

クルーズ船が沈没 16人全員救助
https://news.yahoo.co.jp/pickup/6435708

第7波 救急車足りず消防車出動もNEW
https://news.yahoo.co.jp/pickup/6435712

お盆休み後半戦 Uターンラッシュ
https://news.yahoo.co.jp/pickup/6435710

ヘッシュさんが死去 延命措置停止NEW
https://news.yahoo.co.jp/pickup/6435714

心癒やした 終戦直後のエンタメNEW
https://news.yahoo.co.jp/pickup/6435721

中島知子 露出じわじわ「再評価」
https://news.yahoo.co.jp/pickup/6435705