2013-07-19 45 views
1

對於我的抓取工程,我需要從JavaScript對象獲取產品詳細信息。如何使用XPath/HTMLAgilityPack讀取JavaScript對象

如何從下列JavaScript中有效獲取對象細節?我使用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獲取其他抓取工具的詳細信息。

回答

1

由於HTML敏捷性包不評估HTML的任何內容,所以JavaScript代碼應該被認爲是純文本。使用SelectSingleNode方法找到一塊Javascript,然後只需抓住InnerHtml來獲取內容。

要麼找到一個C#JavaScript分析器(Iron JS例如)或使用標準文本處理技術(String.*Regex提取你後位寫一個解析器。

一旦你的大括號中的比特你可以使用前面提到的分析器或類似Json.NET的庫來解析它們,因爲大括號之間的部分似乎是有效的json。