Capturar datos no HTML de un sitio web usando Python

Estoy tratando de obtener los precios de contrato actuales en esta página a una cadena: http://www.cmegroup.com/trading/equity-index/us-index/e-mini-sandp500.html

Realmente me gustaría una solución de python 2.6.

Fue fácil obtener el html de la página utilizando urllib, pero parece que este número está activo y no en el html. He inspeccionado el elemento en Chrome y es algo de la clase td.

Pero no sé cómo llegar a esto con python. Intenté beautifulsoup (pero después de varios bashs dejé de usar un tar.gz para trabajar en mi sistema Windows x64) y luego elementtree, pero en realidad mi interés en la progtwigción es el análisis de datos. No soy un diseñador de sitios web y realmente no quiero serlo, así que es todo un tipo de idioma extranjero. ¿Es este precio en vivo XML?

Cualquier ayuda recibida con gratitud. Lo ideal es un módulo fácil de instalar y un código real, pero todos los consejos y sugerencias son bienvenidos.

Parece que los números en la tabla están rellenados por Javascript, por lo que simplemente obtener el HTML con urllib u otra biblioteca no será suficiente ya que no ejecutan el javascript. Tendrá que usar una biblioteca como PyQt para simular el navegador que representa la página / ejecutar el JS para completar los números, luego raspar el HTML de salida de eso.

Consulte esta publicación de blog sobre cómo trabajar con PyQt: http://blog.motane.lu/2009/07/07/downloading-a-pages-content-with-python-and-webkit/ link text

Si miras ese sitio web con algo como firebug , puedes ver las llamadas de AJAX que está haciendo. Por ejemplo, los valores iniciales se completan con una llamada AJAX (al menos para mí) para:

http://www.cmegroup.com/CmeWS/md/MDServer/V1/Venue/G/Exchange/XCME/FOI/FUT/Product/ES?currentTime=1292780678142&contractCDs=,ESH1,ESM1,ESU1,ESZ1,ESH1,ESH1 , ESM1, ESU1, ESZ1, ESH2

Esto está devolviendo una respuesta JSON, que luego es analizada por javascript para completar la tabla. Sería bastante simple hacerlo con urllib y luego usar simplejson para analizar la respuesta.

Además, debes leer este descargo de responsabilidad con mucho cuidado. Lo que está tratando de hacer probablemente no sea bueno con los propietarios del sitio web.

Es difícil saber qué decirle sin saber de dónde viene el número. También podría ser php o asp, así que tendrás que averiguar en qué idioma está el número.

Pruebe con un navegador web real, por ejemplo, controle iMacros para Firefox / Chrome a través de la línea de comandos