以下のURLを参照してclassの値を撮ろうとしています。
http://www.atmarkit.co.jp/fdotnet/dotnettips/687nondispbrowser/nondispbrowser.html
例として取得しようとしているものは以下のurl
http://ejje.weblio.jp/content/solid
<td><div ID=ePsdDl><a href="http://www.weblio.jp/img/dict/kenej/audio/S-D49418A_E-D4965AC.mp3" id="audioDownloadPlayUrl"><i class="fa fa-play-circle"></i><br></div></td></tr><tr><td><span>クイック再生</span></td><td><span>プレーヤー再生</span></td></tr></table>
</td>
のhttp://www.weblio.jp/img/dict/kenej/audio/S-D49418A_E-D4965AC.mp3です。
上記で参考にしたソースではこのa hrefは検出しませんでした。div,td等の下にaがある場合は検出しないのでしょうか?
また、その場合はこのケースではどのタグで段階的に検出すればいいのでしょうか?
上記で参考にしたソースではこのa hrefは検出しませんでした。div,td等の下にaがある場合は検出しないのでしょうか?
そんなことはありません。GetElementsByTagName メソッドは、タグの階層に関係なく、ごそっと取得します。
質問の文面で気になるのは、以下のようなところ。
んで、.mp3 な URL を持つ A タグには、id 属性がついているので GetElementById メソッドを使います。
こんな感じ。
NonDispBrowser ndb = new NonDispBrowser(); ndb.NavigateAndWait("http://ejje.weblio.jp/content/solid"); HtmlDocument doc = ndb.Document; HtmlElement e = doc.GetElementById("audioDownloadPlayUrl"); if (! string.IsNullOrEmpty(href)) { string href = e.GetAttribute("href"); // HREF属性の値 Console.WriteLine(href); }
ご教授いただいた方法で解決しました。ありがとうございます。
2017/04/07 22:23:52