2013-07-19 15 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。