getElementsByClassNameについて
未読分:5件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#5 2017年6月4日(日)09時58分 From: NMC | 返事 削除 変更 |
横から失礼します。 まず、該当ページは、<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">となっており、DOCTYPEが、HTML 5ではないので getElementsByclassNameが使えないと思われます。 次に、該当ページには<li class="md-addclass">しかなく <tr>タグをいくら探してもmd-addclassは見つかりません。 また、getAttribute("class")ではなく、getAttribute("className")とする必要があるようです。たとえば、以下では上手くいきませんか? For Each obj In objIE.document.getElementsByTagName("li") If obj.getAttribute("className") = "md-addclass" Then Debug.Print obj.innerText End If Next obj |
Message#4 2017年6月3日(土)21時21分 From: uiita | 返事 削除 変更 |
ありがとうございます。 試しに適当なclassを入れて下記の通りやってみたのですが、取得されませんでした。 当方windows10、IE11なんですが、環境的な問題なんでしょうか Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.navigate "https://site1.sbisec.co.jp/ETGate/" '//ここにwaitサブルーチン For Each obj In objIE.document.getElementsByTagName("tr") If obj.getAttribute("class") = "md-addclass" Then Debug.Print obj.innerText End If Next obj End Sub > 追記です。 > 特定のclassだけ抜き出したい場合は、以下のようにすれば大丈夫です。 > > For Each obj In IE.document.getElementsByTagName("tr") > If obj.getAttribute("class") = "***" Then > Debug.Print obj.innerText > End If > Next obj > > ※***→クラス名 |
Message#3 2017年6月2日(金)14時04分 From: miller | 返事 削除 変更 |
追記です。 特定のclassだけ抜き出したい場合は、以下のようにすれば大丈夫です。 For Each obj In IE.document.getElementsByTagName("tr") If obj.getAttribute("class") = "***" Then Debug.Print obj.innerText End If Next obj ※***→クラス名 |
Message#2 2017年6月2日(金)13時55分 From: miller | 返事 削除 変更 |
こんにちは。 簡単にサンプル書いてみました。 以下は<tr>タグのinnertextを全て抜き出すプログラムです。 シートにひとまず全て抜き出し、不要なデータはあとから消す方法ではいかがでしょうか。 Sub test() Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True target_URL = "https://site1.sbisec.co.jp/ETGate/" IE.navigate target_URL For Each obj In IE.document.getElementsByTagName("tr") Debug.Print obj.innerText Next obj End Sub |
Message#1 2017年6月1日(木)21時32分 From: uiita | 返事 削除 変更 |
SBI証券(https://site1.sbisec.co.jp/ETGate/)からIE操作にてスクレイピングしたいと思っています。 ie.document.getElementsByClassName("***")(0).innerText としても"オブジェクトは、このプロパティをサポートしていません"となってしまいます。 他のサイトからは取得できるんですが、SBI証券に関しては何をやってもダメでした。 どなたか解決できる方よろしくお願いします。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降