2012-02-29 13 views
6

estoy tratando de escribir un script sencillo para comprobar simplemente una página web para un valor específico:Ejecución de jQuery en un archivo HTML estática de Bash

$("a#infgHeader").text() == "Delivered"; 

me gustaría para automatizar esto desde un script Bash a ser ejecutado en un intervalo. También estoy bien con el uso de Python. Necesito esencialmente hacer una solicitud HTTP, obtener la respuesta y tener una manera de consultar inteligentemente el resultado. ¿Hay una biblioteca que me ayude con la parte de consulta?

Respuesta

8

Xpath es ideal para consultar html.

Algo como esto:

//a[@id='infgHeader']/@text 

En herramienta de desarrollo de cromo se puede utilizar el cuadro de búsqueda en la pestaña Elementos para probar la expresión.

carrera rápida en el terminal:

$echo '<div id="test" text="foo">Hello</div>' | xpath '//div[@id="test"]/@text' 
Found 1 nodes: 
-- NODE -- 
text="foo" 
+0

Hurra por xRuta! Me preguntaba si sería de ayuda aquí. No lo sabía porque HTML! = XML, pero bueno, si funciona, funciona. –

+1

La sintaxis correcta parece ser 'xpath -e ...'. – Tgr

+0

'xpath' funciona mal con código HTML no estrictamente XML. Al ejecutarlo en un fragmento HTML de 100 líneas, se congela durante un minuto y luego muere con un error de "etiqueta no coincidente", aparentemente porque el código tenía '' y no ''. – Tgr

2

http://pypi.python.org/pypi/spynner/1.10

Spynner le permitirá seleccionar los elementos del DOM utilizando la sintaxis de jQuery.

O hay otras bibliotecas que le permiten analizar HTML. BeautifulSoup, lxml

+0

Enlace fijo: https://pypi.python.org/pypi/spynner/ –

0

Recientemente he hecho algo como esto usando nodejs + jsdom ambos están bien documentados con una barrera de entrada baja.

0

Para analizar HTML no es trivial para los sitios web en general, porque html puede no ser prefecto y DOM puede ser modificada por java script sobre la marcha, por lo análisis de HTML puede no tener sentido en este caso.

mejor manera es utilizar un navegador y acceder directamente a la DOM, para que pueda utilizar un navegador sin cabeza como phontomjs, por lo que puede script y compruebe lo que sea necesario para comprobar

Cuestiones relacionadas