Pregunta

Estoy tratando de automatizar la extracción de datos de un sitio web y la verdad es que no sé por dónde empezar. Uno de nuestros proveedores nos da acceso a algunos datos de registro a través de un equipo de " Objetos de negocios 11 " solicitud en línea. Si usted no está familiarizado con esta aplicación en línea, pensar en él como un generador de informes basado en la web. El problema es que estoy tratando de controlar una gran cantidad de equipos y este proveedor sólo ha creado una petición para extraer un tronco a la vez. Esta petición tiene el número de equipo, la fecha de inicio y la fecha final ... Para empeorar las cosas, sólo podemos exportar al formato Excel binario desde "csv" de la exportación está en quiebra y que se niegan a arreglar ... por lo tanto, nos están limitados por la limitación de la fila 65 de 536 Excel ... (que equivale a 3-4 días de grabación de datos en mi caso). No puedo crear un nuevo resquest ya que sólo el proveedor tiene los derechos de administrador necesarios.

¿Qué opinas sería la forma más elegante de dirigir una gran cantidad de peticiones (alrededor de 800) a través de una interfaz web? Creo que podría codificar posiciones del ratón, haga clic en eventos y las pulsaciones de teclado con retrasos y todo ... Pero tiene que haber una mejor manera.

He leído acerca de AutoHotKey y AutoIt scripting pero parecen estar limitados en cuanto a lo que pueden hacer en la web. También ... estoy atascado con IE6 ... Pero si usted sabe de una manera que involucra otro navegador, todavía estoy muy interesado en su respuesta.

(una que tengo los archivos de registro a nivel local, la extracción de los datos es no es un problema)

¿Fue útil?

Solución

Hay algunas cosas que usted puede intentar. Si el sitio es un html y los informes puede ser solicitada por un POST o GET sencilla a continuación, urlib / urlib2 < módulos / a> y cookielib Python debería ser suficiente para traer un documento de Excel.

A continuación, puede intentar esto: XLRD para extraer datos de Excel.

Además, echar un vistazo a: http://pamie.sourceforge.net /. Nunca probado a mí mismo, pero parece prometedor y fácil de usar.

Otros consejos

Normalmente, sugeriría no usar IE (o cualquier navegador) en absoluto. Recuerde, el software de navegador web son programas solo proxy para hacer peticiones http y mostrar los resultados de manera significativa. Hay otras maneras de hacer peticiones http similares y procesar las respuestas. Casi todos los idiomas moderna ha construido esta en él de alguna parte de la API. Esto se llama captura de imágenes o raspado web.

Sin embargo, para completar esta sugerencia que necesito saber más acerca de su entorno de programación:? Es decir, en qué lenguaje de programación es lo que visualiza escribir este guión

Un ejemplo típico usando C # en el que acaba de obtener el resultado como una cadena HTML se vería así:

new System.Net.WebClient().DownloadString("http://example.com");

A continuación, analizar la cadena de encontrar cualquier campo que necesita y enviar una nueva solicitud. La clase WebClient también tienen un método .DownloadFile() que le puede resultar útil para recuperar los archivos de Excel.

Ya que se puede utilizar .NET, se debe considerar el uso de Windows Forms control WebBrowser. Puede automatizarlo para navegar hasta el sitio, pulse los botones, etc. Una vez que se carga la página del informe, se puede utilizar código para navegar por el DOM HTML para encontrar los datos que desea -. No hay expresiones regulares involucrados

Lo hice algo como esto hace años, para extraer datos de la subasta de eBay.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top