🌊
ChatGPTを使ってスクレイピングのコードを書くことができました
お店の商品名の一覧が必要で、スクレイピングの作業が必要になりました。
VBAでスクレイピングできることが分かりましたので、ChatGPTを使いVBAのコードを書くことができました。
抽出したい商品名とURLがあるHTMLのクラス名の指定を私が間違えたので、はじめは上手く行かなったですが、クラス名を修正することで抽出できました。
ExcelでVBAを使ってスクレイピングを行うときは、 ツール→参照設定で、Microsoft HTML Object Libraryを選択してください。
スクレイピングするときは、商品名とURLがあるタグのクラス名を指定すると良いです。
<h3 class="class_name">
<a href="hoge" class="class_name2">
商品名
</a>
</h3>
上記のコードの場合は、class_name2でなく、その上のclass_nameを指定すると良いです。
実際に使うときは、class_nameを目的のクラス名に書き換えてください。
URLも、hogeの部分を抽出したいURLに変えてください。
このコードは、4ページの読み込みを行います。
Sub ScrapeOnigiriLinks()
Dim ie As Object
Dim Html As Object
Dim i As Integer
Dim j As Integer
Dim link As String
Dim itemName As String
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
Set Html = CreateObject("HTMLFile")
j = 1
For i = 1 To 4
link = "https://hoge?page=" & i
ie.navigate link
Do While ie.Busy Or ie.readyState <> 4
DoEvents
Loop
Set Html = ie.document
Dim products As Object
Set products = Html.getElementsByClassName("class_name")
Dim product As Object
For Each product In products
If Not product.getElementsByTagName("a")(0) Is Nothing Then
itemName = product.getElementsByTagName("a")(0).innerText
Worksheets("Sheet1").Cells(j, 1).Value = itemName
Worksheets("Sheet1").Cells(j, 2).Value = product.getElementsByTagName("a")(0).href
j = j + 1
End If
Next product
Debug.Print "Page " & i & " done"
Next i
ie.Quit
Set ie = Nothing
MsgBox "スクレイピングが完了しました。"
End Sub
Excelのワークシートには、商品名、URLの順でリストが出力されます。
Discussion