XPath / HTMLAgilityPack으로 JavaScript 객체를 읽는 법

c# html-agility-pack javascript xpath

문제

크롤러 프로젝트의 경우 자바 스크립트 객체에서 제품 세부 정보를 가져와야합니다.

다음 자바 스크립트에서 객체 세부 정보를 효과적으로 얻으려면 어떻게해야합니까? 나는 XPath와 HTMLAgilityPack을 사용한다.

<script type="text/javascript">
    var product = {
        identifier: '2051189775',     //PRODUCT ID
        fn: 'Fit- Whiskered Dark Wash Skirt',
        category: ['sale'],
        brand: 'Brand Name',
        price: '22.90',  // this would be the discount price
        amount: '31.80',  // this would be the original price
        currency: 'USD',
        //List can me even more.
    };
</script>

JavaScript 객체에서 세부 사항을 가져 오기 전에는 시도하지 않았습니다. 나는 다른 크롤러를 위해 HTML에서 세부 사항을 직접 얻었습니다.

수락 된 답변

HTML 민첩성 팩은 HTML의 내용을 평가하지 않으므로 자바 스크립트 코드는 일반 텍스트로 간주되어야합니다. SelectSingleNode 메서드를 사용하여 자바 스크립트를 찾은 다음 InnerHtml을 잡고 내용을 가져옵니다.

C # 자바 스크립트 파서 (예 : Iron JS )를 찾거나 표준 텍스트 조작 기술 ( String.* 또는 Regex 를 사용하여 Regex 된 비트를 추출합니다.

중괄호 사이의 비트가 있으면 앞에서 언급 한 파서 나 Json.NET 과 같은 라이브러리를 사용하여 구문 분석 할 수 있습니다. 중괄호 사이의 부분은 유효한 json 인 것 같습니다.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.