1

对于我的爬虫项目,我需要从 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 中获取其他爬虫的详细信息。

4

1 回答 1

1

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

要么找到一个 C# javascript 解析器(例如Iron JS),要么使用标准文本操作技术编写一个解析器(String.*或者Regex提取你想要的位。

一旦大括号之间有了位,您就可以使用前面提到的解析器或Json.NET之类的库来解析它们,因为大括号之间的部分似乎是有效的 json。

于 2013-07-19T14:52:11.473 回答