如何使用XPath / HTMLAgilityPack讀取JavaScript對象

c# html-agility-pack javascript xpath

對於我的抓取工具項目,我需要從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獲取其他抓取工具的詳細信息。

一般承認的答案

由於HTML Agility Pack不評估HTML的任何內容,因此javascript代碼應該只被視為純文本。使用SelectSingleNode方法查找Javascript,然後只需抓住InnerHtml即可獲取內容。

要么找到C#javascript解析器(例如Iron JS ),要么使用標准文本操作技術( String.*Regex來編寫解析器來提取您所追求的位。

一旦你有大括號之間的位,你可以使用前面提到的解析器或像Json.NET這樣的庫來解析它們,因為大括號之間的片段似乎是有效的json。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因