コードをコピペしてすぐ実行可能。
実行環境はWindows10。
今回はヤフートップニュースをサンプルとしてスクレイピングする。
ソースコード
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時)
首相 追悼式で「歴史の教訓」言及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