VBAのスクレイピングについて質問です。
膨大なHTMLページの中に、以下のDIVがあります。
HTML
1<div id="tables"> 2 <table> 3 <tbody> 4 <tr> 5 <td>やまだ</td> 6 </tr> 7 </tbody> 8 </table> 9 <table> 10 <tbody> 11 <tr> 12 <td>さとう</td> 13 </tr> 14 </tbody> 15 </table> 16 <table> 17 <tbody> 18 <tr> 19 <td>ほんだ</td> 20 </tr> 21 </tbody> 22 </table> 23 <table> 24 <tbody> 25 <tr> 26 <td>たなか</td> 27 </tr> 28 </tbody> 29 </table> 30 <table> 31 <tbody> 32 <tr> 33 <td>すずき</td> 34 </tr> 35 </tbody> 36 </table> 37</div>
上記HTMLの、テーブルの中の氏名をエクセルシートに出力したいのです。
膨大なボリュームのhtmlページの中から、
「id="tables"の要素を取得して、その中のテーブル要素のtdの値を取得する」
というのが目的の処理です。
実際にはdiv内のテーブル数はかなりの数があります。
先ほど書いてみた処理は
getElementById("tables").innerHTMLをした時点で、返却値が文字列になってしまい、テーブルをループさせる処理などが複雑になる(文字列内から「td」という文字位置を取得して、その次の「 > 」の直後~「 < 」の直前までを記憶・・・をinnerHTMLで取得した文字列を全て走査するまで繰り返す・・・といった処理になり、非常に非効率です)ので、
理想的な動作は、
**「getElementById("tables")のinnerHTMLから、table要素の配列(コレクション)をループで回せる」**ような処理です。
ある要素の「中にある要素」をコレクションなどで返却してくれる関数が欲しいというイメージでしょうか?
VBAでのIE操作・スクレイピングに詳しい方、ご教授の程宜しくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/11 15:14