2016-10-26 3 views
3

일반스크립트 태그 내에있는 속성 값을 추출하는 방법은 무엇입니까?

나는 현재 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과 자바 스크립트를 종합적으로 살펴볼 필요가 있다면, 나는 그 충고를 기꺼이 받아 들인다.

하지만 즉시 사용할 수있는 답을 선호합니다.

답변

0

페이지 소스를 파싱하려고하면 어떻게됩니까? (셀레늄 webdriver를 사용하면 쉽게 얻을 수 있습니다. 그런 다음 일부 정규식을 적용하여 필요한 값을 추출 할 수 있습니까?

+0

나는 그것을 줄 것이다! – pat3d3r