一般スクリプトタグ内にある属性値を抽出するにはどうすればよいですか?
私は現在、C#アプリケーションのためのウェブサイトの変更値(温度、株式価値、為替レート、...)を使用するために、HTMLとJavascriptで遊んでいます。
(私は意図的にunclear legal situationを無視しています。)
細目
私はウェブサイトおよびそのソースコードを持っています。私の希望する値はスクリプトタグの範囲内です。
<script type="text/ng-template" id="TmplLiveEventDetails">
<div class="lii-progress">
<span ng-bind="liveEvent.eventStateText"></span> <strong class="m-liveGameTime{{::liveEvent.id}}"></strong><br/>
<!--code goes on here...-->
私は私のC#アプリケーション内のクラス
m-liveGameTime
の値を使用します。
私がこれまで試してみました何
私はHtmlAgilityPackとXPathを始めたが、それはそれはJavaScriptで動作しないことを把握するために私にいくつかの時間がかかりました。 その後、HtmlAgilityPackとJurassicが使用されているthis postを追跡しました。しかし、再び、私が望むように働いていない。
スクリプトタグの内容をプレーンテキストで抽出できますが、HTMLをHtmlAgilityPackではなく、JavaScriptの式を最初に評価しているものを取得する必要があります。
ちょうどわかりやすくするために私のコードの抜粋、:
string url = "http://www.somewebsite.com";
HtmlWeb web = new HtmlWeb();
HtmlDocument document = web.Load(url);
string scriptContent = document.DocumentNode.Descendants()
.Where(n => n.Id == "TmplLiveEventDetails")
.First().InnerHtml;
var engine = new Jurassic.ScriptEngine();
var result = engine.Evaluate("function() {" + scriptContent + " return m-liveGameTime4902493; })()");
考慮事項
私はHTMLとJavaScriptで合計初心者です、これは本当に何かをしようとする短辺プロジェクトです。その答えが、私が望むことを行うためにHTMLとJavascriptを先に見る必要があるということであれば、私は喜んでそのアドバイスを受け取ります。
しかし、私はすぐに使用できる答えが好きです。
私はそれを見てみましょう! – pat3d3r