閲覧いただきありがとうございます。
今現在、スクレイピングの勉強をしているのですが、あるサイトでデータの抜き方がわからずに困っています。
HTML
1<div class=aaa> 2 <div class=bbb> 3 <table> 4 <tbody> 5 <tr class=ccc>... 6 </tr> 7 <tr>...</tr> 8 <tr class=ddd> 9 <td>最低</td> 10 <td>金額</td> 11 <tr class=ddd> 12 <td>最高</td> 13 <td>金額</td> 14 <tr class=ddd> 15 <td>平均</td> 16 <td>金額</td> 17 </tbody> 18 </table> 19 </div> 20</div> 21 22<div class=eee> 23 <div class=bbb> 24 <table> 25 <tbody> 26 <tr class=ccc>... 27 </tr> 28 <tr>...</tr> 29 <tr class=ddd> 30 <td>最低</td> ←この最低と下の金額が抜きたい。 31 <td>金額</td> 32 <tr class=ddd> 33 <td>最高</td> 34 <td>金額</td> 35 <tr class=ddd> 36 <td>平均</td> 37 <td>金額</td> 38 </tbody> 39 </table> 40 </div> 41</div> 42 43
上のような構図になっているのですが
Excel
1 2Dim tr As HTMLTable 3Dim tm As HTMLTable 4 5For Each tr In objIE.getElementsByClassName("eee") 6 7 For Each tm In tr.objIE.getElementsByTagName("td") 8 9 If tm.innerText = "最低" Then 10 11 Debug.Print tm.innerText 12 13 14 15 End If 16 17 Next 18 19 Next tr
としたところ、実行時エラー438と出てしまいます。
何故でしょうか?
ご教授いただけましたら幸いです。
お願いいたします。
---追記---
変更後のコードになります。
VBA
1 2Dim tr As Object 3Dim tm As Object 4 For Each tr In objIE.getElementsByClassName("eee") 5 6 For Each tm In tr.getElementsByTagName("td") 7 8 If tm.innerText = "最低" Then 9 10 MsgBox tm.innerText 11 12 13 14 End If 15 16 Next tm 17 18 Next tr
エラー内容
実行時エラー438
このオブジェクトは、このプロパティまたはメソッドをサポートしていません。
でした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/17 03:41
2020/09/17 03:45 編集
2020/09/17 04:03
2020/09/17 04:13
2020/09/17 04:44
2020/09/17 04:55
2020/09/17 08:04