nokogiri, xpath y firefox

EnglishFrenchGermanItalianPortugueseRussianSpanish

Nunca había sabido a ciencia cierta y menos práctica para que usar el XPATH que aparece cuando inspeccionas un elemento con Firefox (o chrome) y no ha sido trivial que funcione como esperaba.

Lo que tenía que hacer es sacar unos cuantos valores de varias páginas web con contenidos absolutamente dispares. De pronto se me ocurrió que podía usar el xpath que me devolvía firefox al inspeccionar el elemento. Luego con nokogiri y un poco de ruby estaba resuelto con muy pocas lineas y eficientemente.

Después de muchas pruebas y no obtener ningún resultado he encontrado cual es el “bug”.

Cuando seleccionas el xpath de un elemento tienes una uri de este estilo:

/html/body/div[3]/div[2]/table/tbody/tr/td/div[2]/table/tbody/tr/td[2]/form/span[2]/span

firefox y chrome incluyen tbody de más. Con eliminarlos, nokigiri empieza a extraer el contenido correctamente 😉

 

 

 

 

 

Social Share Counters

2 Comments »

  1. stripTM Said,

    September 12, 2012 @ 8:51 pm

    XPath no obliga a poner todos los elementos hasta llegar a los nodos que buscas, se puede usar el selector descendiente // es equivalente al espacio en los selectores de css.

    Por ejemplo puedes sustir
    table/tbody/tr/td/div[2]
    por
    table//div[2]

  2. Sak Said,

    September 18, 2012 @ 4:23 pm

    Es muy útil y no está muy documentado que puedes utilizar otro tipo de etiquetas para acceder a un XPATH que nos siempre igual, por ejemplo con el id o class:

    //*[@class=”cabecera”]/h3
    //*[@id=”main-article-info”]

    Un saludo

RSS feed for comments on this post · TrackBack URI

Leave a Comment