Как читать объект 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 для других поисковых роботов.


person Zafar    schedule 19.07.2013    source источник


Ответы (1)


Поскольку пакет HTML Agility Pack не оценивает содержимое HTML, код javascript следует рассматривать как обычный текст. Используйте метод SelectSingleNode, чтобы найти фрагмент Javascript, затем просто возьмите InnerHtml, чтобы перейти к его содержимому.

Найдите синтаксический анализатор javascript C # (например, Iron JS) или напишите синтаксический анализатор, используя стандартные методы обработки текста (String.* или Regex, чтобы извлечь то, что вам нужно.

Когда у вас есть биты между фигурными скобками, вы можете проанализировать их с помощью вышеупомянутого парсера или библиотеки, например Json.NET, поскольку фрагменты между фигурными скобками кажутся действительными json.

person jessehouwing    schedule 19.07.2013