Datos de raspado web de un gráfico interactivo

¿Sería posible obtener los datos detrás del gráfico interactivo en esta página web (lo siento, el sitio web requiere inicio de sesión)?

Cuando muevo el mouse sobre el gráfico, aparecen los datos, pero ¿cómo obtengo esos datos?

Aquí hay un extracto del código fuente HTML de ese sitio web:

 Created with Raphaël 2.1.0         <path style="opacity: 

Hay muchos más de estos elementos de path , que no pegué aquí.

Tendría que analizar esa información (y al adivinar a partir de sus tags, querrá hacer esto en Python). Sin embargo, después de haber echado un vistazo rápido a la documentación de Raphael , estoy bastante seguro de que puede obtener los datos de otra manera más rápida: los datos deben existir como una matriz javascript en algún lugar. Intenta buscar eso primero.

Finalmente, a partir de estos datos de javascript, se genera el SVG que ha encontrado. Si observa la descripción del elemento SVG Path , verá cómo deben interpretarse esas definiciones M y L y, luego, debería ser capaz de analizar esas líneas en el conjunto de datos (python) que desee.

Sin embargo, quiero decir de nuevo que es difícil para nosotros encontrar lo que está buscando sin siquiera una imagen para continuar (¿es un histogtwig, es un diagtwig de líneas?). Las líneas que se están dibujando con L podrían ser todo lo que necesitas.

Como ejemplo, si toma esa primera ruta que ha enumerado en una sesión de python, podría hacer esto:

 svg_string = "M20,130L1017,130M20,159.66666666666666L1017,159.66666666666666M20,189.33333333333331L1017,189.33333333333331M20,219L1017,219M20,248.66666666666666L1017,248.66666666666666M20,278.3333333333333L1017,278.3333333333333M20,308L1017,308" import re data = [map(float, xy.split(',')) for xy in re.split('[ML]', svg_string)[1:]] 

Tenga en cuenta que esto solo funciona correctamente, ya que los comandos Mover y L ine se turnan en esta cadena. Pero parece que todas las otras rutas se generan de una manera similar (lo que me lleva a pensar con más firmeza que el conjunto de datos se encuentra en algún lugar de un archivo javascript que aún no ha visto).

Finalmente, para obtener este código fuente, debe considerar el uso de urllib2 para la recuperación programática.

Una buena opción para este caso es combinar selenium con alguna herramienta de raspado como Scrapy en Python. Escribí un ejemplo completo en el siguiente enlace: http://www.6020peaks.com/2014/12/how-to-scrape-hidden-web-data-with-python/