2013-03-08 2 views
1

HTML 민첩성 팩을 사용하여 구문 분석하려고하는 다음 HTML이 있습니다. HTMLAgilityPack을 사용하여 javascript HTML 구문 분석

는 HTML 코드의 조각이다 : 그 네 데이터 변수를 얻을 수 트링있어

<body id="station_page" class=""> 
... 
<div>....</div> 
<script type="text/javascript"> 
if (Blablabla == undefined) { var Blablabla = {}; } 
Blablabla .Data1= "I want this data"; 
Blablabla .BlablablaData = 
{ "Data2":"I want this data", 
"Blablabla":"", 
"Blablabla":0 } 
{ "Blablabla":123, 
"Data3":"I want this data", 
"Blablabla":123} 
    Blablabla .Data4= I want this data; 
</script>... 

(데이터 1, 데이터 2, DATA3, DATA4). 먼저 javascript를 찾으려고 시도했습니다.

doc.DocumentNode.SelectSingleNode("//script[@type='text/javascript']").InnerHtml 

정말 올바른 자바 스크립트인지 어떻게 확인할 수 있습니까? 관련 자바 스크립트를 찾은 후 어떻게 그 4 데이터 변수 (Data1, Data2, Data3, Data4)를 얻을 수 있습니까?

+0

과 자바 스크립트 구문 분석을해야합니다 나는 이것이 생각 : 당신은이 같은 XPATH에 필요한 스크립트를 얻을 수 있습니다 그것을하는 잘못된 방법. 확실한 방법은 무엇인지 모르겠지만이 방법은 (htmlagilitypack을 사용하여) 그렇지 않습니다. – Th0rndike

+0

소리를 분석하는 것뿐만 아니라 자바 스크립트를 실행해야하는 것처럼 들립니다. 그렇다면 여기 그것을 할 수있는 방법이 있습니다 : http://stackoverflow.com/questions/2530789/evaluate-javascript-to-plain-text-using-c-net-3-5/9415417#9415417 –

답변

3

HTML 민첩성 팩으로 javascript를 구문 분석 할 수 없으며 HTML 구문 분석 만 지원합니다.

doc.DocumentNode.SelectSingleNode("//script[contains(text(), 'Blablabla')]").InnerHtml 

하지만 다른 방법 (정규식, JS 문법 등)

+0

좋아요! 다른 방법을 시도해 보겠습니다 ... –

관련 문제