Raspando los datos generados por javascript usando Python

Quiero raspar algunos datos de la siguiente url usando Python. http://www.hankyung.com/stockplus/main.php?module=stock&mode=stock_analysis_infomation&itemcode=078340

Se trata de un resumen de la información de la empresa.

Lo que quiero raspar no se muestra en la primera página. Al hacer clic en la pestaña denominada “재무 제표”, puede acceder al estado financiero. Y al hacer clic en la pestaña llamada “현금 흐름표 ‘, puede acceder a” Flujo de efectivo “.

Quiero raspar los datos de “Flujo de efectivo”.

Sin embargo, los datos de flujo de caja son generados por javascript a través de la url. El siguiente enlace es la url que está oculta, http://stock.kisline.com/compinfo/financial/main.action?vhead=N&vfoot=N&vstay=&omit=&vwidth=

Los datos de flujo de efectivo se generan al enviar algún valor de opción y cookie a esta url.

Como percibió, itemcode = 078340 en el primer enlace significa código de acciones y hay hasta 1680 acciones que quiero que recopilen datos de flujo de efectivo. Quiero que sea una estructura de bucle.

¿Hay una buena manera de raspar los datos de flujo de efectivo? Intenté scrapy, pero scrapy es difícil de manejar con mi otro código de raspado que ya estoy usando.

También hay dryscape (una biblioteca escrita por mí, por lo que la recomendación es un poco sesgada, obviamente 🙂 que utiliza un rápido navegador de memoria basado en Webkit para navegar. También entiende Javascript, pero es mucho más liviano que el Selenium.

Si necesita escanear el contenido de la página que se actualiza con AJAX y no tiene el control de esta interfaz AJAX, usaría el automatizador del navegador Selenium para la tarea:

http://code.google.com/p/selenium/

  • Selenio tiene enlaces de Python

  • Lanza una instancia de navegador real para que pueda hacer y raspar 100% lo mismo que ves con tus propios ojos.

  • Obtenga el contenido del documento HTML después de las actualizaciones de AJAX a través de la API de Selenium

  • Use los selectores lxml + xpath / CSS para analizar las partes relevantes del documento