일반스크립트 태그 내에있는 속성 값을 추출하는 방법은 무엇입니까?
나는 현재 C# 응용 프로그램에 대한 웹 사이트의 변경 값 (온도, 주식 가치, 통화 환율, ...)를 사용하기 위해서는 HTML과 자바 스크립트와 장난하고있다.
(I 의도적으로 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를 시작하지만, 그것은 자바 스크립트가 작동하지 않음을 알아 내기 위해 좀 시간이 걸렸습니다. 그런 다음 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과 자바 스크립트와 총 초보자입니다, 이것은 정말 뭔가를 시도하는 짧은 사이드 프로젝트입니다. 그 대답이 내가 원하는 것을하기 위해 HTML과 자바 스크립트를 종합적으로 살펴볼 필요가 있다면, 나는 그 충고를 기꺼이 받아 들인다.
하지만 즉시 사용할 수있는 답을 선호합니다.
나는 그것을 줄 것이다! – pat3d3r