如何使用XPath / HTMLAgilityPack读取JavaScript对象

对于我的抓取工具项目,我需要从JavaScript对象获取产品详细信息。

如何从以下JavaScript有效地获取对象详细信息? 我使用XPath和HTMLAgilityPack。

 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. };  

我之前没有尝试从JavaScript对象获取详细信息。 我直接从HTML获取其他抓取工具的详细信息。

由于HTML Agility Pack不评估HTML的任何内容,因此javascript代码应该只被视为纯文本。 使用SelectSingleNode方法查找Javascript,然后只需抓住InnerHtml即可获取内容。

要么找到C#javascript解析器(例如Iron JS ),要么使用标准文本操作技术( String.*Regex来编写解析器来提取您所追求的位。

一旦你有大括号之间的位,你可以使用前面提到的解析器或像Json.NET这样的库来解析它们,因为大括号之间的片段似乎是有效的json。