Cómo leer el objeto JavaScript con XPath / HTMLAgilityPack

c# html-agility-pack javascript xpath

Pregunta

Para mi proyecto de rastreador, necesito obtener detalles del producto del objeto JavaScript.

¿Cómo puedo obtener efectivamente los detalles del objeto desde el siguiente JavaScript? Yo uso XPath y 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>

No he intentado obtener detalles de objetos JavaScript antes. Estaba obteniendo detalles directamente de HTML para otros rastreadores.

Respuesta aceptada

Dado que el paquete de agilidad HTML no evalúa ninguno de los contenidos del HTML, el código javascript solo debe considerarse texto simple. Utilice el método SelectSingleNode para encontrar la pieza de Javascript, luego simplemente tome el InnerHtml para acceder a los contenidos.

Encuentre un analizador de C # javascript (por ejemplo, Iron JS ) o escriba un analizador utilizando técnicas de manipulación de texto estándar ( String.* O Regex para extraer los bits que Regex .

Una vez que tenga los bits entre los corchetes, puede analizarlos utilizando un analizador antes mencionado o una biblioteca como Json.NET , ya que las piezas entre los corchetes parecen ser válidas json.



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow