IngoberWiki

Omnia sunt communia

Herramientas de usuario

Herramientas del sitio


hackathon_gastos_en_software_estado

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
hackathon_gastos_en_software_estado [2017/07/20 16:22]
fanta [Entendiendo el script. Funcionamiento]
hackathon_gastos_en_software_estado [2017/07/22 20:04] (actual)
editora [Hackathon para conocer el gasto público en materia de software privativo en el Estado Español]
Línea 1: Línea 1:
 ===== Hackathon para conocer el gasto público en materia de software privativo en el Estado Español ===== ===== Hackathon para conocer el gasto público en materia de software privativo en el Estado Español =====
 +
 +«Señores y señoras del gobierno... ¿ Pongan los datos en crudo en un torrent y moveremos el país ?»
 +
 +
 +
 +----
 +
 +
 +Con sencillas técnicas, las adecuadas herramientas y hablando algún que otro lenguaje de programación podemos hacer para el procomún, hermosas cosas como ...
 +
 +  * Conocer lo que se invierte de los bolsillos de la ciudadanía,​ para determinadas partidas de gasto público... ¿con software costoso y privativo que retroalimenta únicamente a las grandes corporaciones ?
 +
 +
 +----
  
 El 19 de Julio realizamos un hackathon en el Ingoberlab 301. Hemos editado este apartado de la wiki para explicar un poco como terminó esa sesión y para tener a mano algo de documentación replicable por terceros. El 19 de Julio realizamos un hackathon en el Ingoberlab 301. Hemos editado este apartado de la wiki para explicar un poco como terminó esa sesión y para tener a mano algo de documentación replicable por terceros.
Línea 13: Línea 27:
  
 {{ :scrap.zip |}} {{ :scrap.zip |}}
 +
 +El script un poco más apañado aquí:
 +
 +{{ ::​s-crap.tar.gz |}}
  
 La primera cifra que nos ha salido ha sido esta (desde 2011 hasta la fecha (19/​07/​2017)):​ La primera cifra que nos ha salido ha sido esta (desde 2011 hasta la fecha (19/​07/​2017)):​
Línea 62: Línea 80:
  
  
-  * 0iopì+  * Abrimos el inspector de código antes de darle a buscar (antes) usando la combinación de teclas: Control+shift+C  
 +  * En el inspector de código pinchamos en la pestaña "​Red"​ 
 +  * Le damos a buscar al formulario. 
 +  * Una vez realizado nos mostrará los resultados. Si nos vamos a la parte de abajo (sin cerrar el inspector) veremos que salen varios links para ir a los resultados siguientes. Veamos eso en esta captura: 
 + 
 +{{ ::​siguiente.png?​nolink |}} 
 + 
 +  * Al darle a "​siguiente"​ (tardará un poco en generar y cargar los siguientes resultados) veremos que se ha realizado una petición post. Hacemos clic derecho sobre ella y seleccionaremos "​Copiar como curl"​. 
 +  * Perderemos las cifras que se han mostrado en la primera página pero no importa inicialmente. 
 +  * Tendremos copiado algo como esto: 
 + 
 +<​code>​ 
 +curl '​https://​contrataciondelestado.es/​wps/​portal/​!ut/​p/​b1/​jZHLDoIwEEW_xQ8wM5S2whJ5tQQF5aHthrAwBsNjY_x-i3ErMrubnJN7kwENamshUs4cziy4gh7bV3dvn900tv2cNW9omPl-JAg6hR0gSYOq4sLEmBlALQFknc9sn9ZJnfNCxohSREFaWczofJ2PP87Df_4F9DJCvsDSxA-wsOEopuEGymC7xqvDkyddG7P92RQl-aHMYzK_AEpQMQy6jyJXPmjrbd7d-SH6/​dl4/​d5/​L2dBISEvZ0FBIS9nQSEh/​pw/​Z7_AVEQAI930OBRD02JPMTPG21004/​act/​id=0/​p=javax.servlet.include.path_info=QCPjspQCPbusquedaQCPFormularioBusqueda.jsp/​361812304066/​-/'​ -H 'Host: contrataciondelestado.es'​ -H '​User-Agent:​ Mozilla/5.0 (X11; Linux i686; rv:52.0) Gecko/​20100101 Firefox/​52.0'​ -H '​Accept:​ text/​html,​application/​xhtml+xml,​application/​xml;​q=0.9,​*/​*;​q=0.8'​ -H '​Accept-Language:​ en-US,​en;​q=0.5'​ --compressed -H '​Referer:​ https://​contrataciondelestado.es/​wps/​portal/​!ut/​p/​b1/​jZHLDoIwEEW_xQ8wM5S2whKB0hIUlIfSDWFhDIbHxvj9FuNWZHY3OSf3JgMa6q2FSDlzOLPgCnpsX929fXbT2PZz1ryhYer7QhJ0cjtAkgRlyaWJETNAvQSQdT6zfVrFVcZzFSEqKYKktJjR-Toff5yH__wL6GWEfIGliR9gYcNRTsMNaoPtGq8KT55ybUz3Z1MUZ4cii8j8AiigFjDoXghXPWjrbd6rGC5n/​dl4/​d5/​L2dBISEvZ0FBIS9nQSEh/​pw/​Z7_AVEQAI930OBRD02JPMTPG21004/​act/​id=0/​p=javax.servlet.include.path_info=QCPjspQCPbusquedaQCPFormularioBusqueda.jsp/​361811959718/​-/'​ -H '​Cookie:​ JSESSIONID=0000aFmwkSk3pfGInMF0D-7rlEb:​prodnod5'​ -H 'DNT: 1' -H '​Connection:​ keep-alive'​ -H '​Upgrade-Insecure-Requests:​ 1' -H '​Pragma:​ no-cache'​ -H '​Cache-Control:​ no-cache'​ --data '​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1=viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3Atext71ExpMAQ=&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3Amenu1MAQ1=00&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3Acombo1MAQ=00&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AtextLugarEjecucion=&​CpvorigenmultiplecpvMultiple=FormularioBusqueda&​cpvViewmultiplecpvMultiple=%23%7BbeanCpvPpt.cpv%7D&​cpvPrincipalmultiplecpvMultiple=&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AcpvMultiple%3AcodigoCpv=&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AtexOrgContMAQ=&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AtextMinFecLimite=&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AtextMaxFecLimite=&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AtexoorganoMAQ=&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3Amenu111MAQ=00&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AtextMinFecAnuncioMAQ2=31-12-2011&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AtextMaxFecAnuncioMAQ=19-07-2017&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AtexAdjudicatarioMAQ=&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AtextEstimadoDesde18MAQ=&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AtextEstimado19MAQ=&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AfooterSiguiente=Siguiente&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AidBreadCrumbSeleccionado=&​viewns_Z7_AVEQAI930OBRD02JPMTPG21004_%3Aform1%3AidControlPulsadoMultiple=false&​javax.faces.ViewState=j_id13%3Aj_id14'​ 
 + 
 +</​code>​ 
 + 
 +  * Importantisimo no navegar en otras pestañas sobre el los resultados y tampoco desde el navegador. El servidor es el que va a paginar cada vez que le mandemos esa petición post. Nosotras lo vamos a hacer mediante un script en bash y sin alterar nada de esa petición. Digamos que el server el el que guardará la página en la que estamos para mostrarnos los siguientes resultados siempre que le mandemos esa orden. 
 +  * Es importante que de un día a otro realizar este procedimiento para que la petición post que capturamos lleve los tokens de sesión. El script por tanto no durará eternamente,​ se ha de actualizar eso siguiendo los pasos comentados. 
 +  * Ahora es cuando pegamos esa línea en el script siguiente y le añadimos al final " -k > a" para que vuelque el resultado en un archivo llamado a y con -k ignore el certificado erróneo. 
 +  * Ejecutamos el script por ejemplo así: bash script.sh y veremos que comienza a sacar los números: 
 + 
 +{{ ::​script-en-accion.png?​nolink |}} 
 + 
 +  * Las cifras de los contratos se irán guardando en un archivo llamado "​result"​. Cada vez que ejecutemos el script se cepillará result. 
 +  * **IMPORTANTISIMO** para entender lo que estamos haciendo y el funcionamiento de la web. Es importante que si ejecutas de nuevo el script en el navegadore te posiciones en la segunda página de resultados. Ya sea la petición post usando curl o usando el navegador estaremos diciendole al server donde estamos. De modo que el script irá realmente paginando. Es por eso que mientras se ejecuta NO hemos de tocar la web ni darle a siguiente ni tampoco a atŕas ni a NADA. **NO TOQUES LEÑES.** 
 + 
 +  * Finalmente cuando el script termine tendremos un archivo con los resultados. Un poco a lo cutre y desordenados de modo que hemos de hacer lo siguiente:​ 
 + 
 +<​code>​ 
 +cat result | tr " " "​\n"​ | grep . > resultado2.csv 
 +</​code>​ 
 + 
 +  * Y para terminar eso lo podemos pegar en una hoja de calculo como Calc de Libreoffice y hacer una auto-suma de la columna para saber el total. Si vemos que result tiene algún dato más de la cuenta afinaremos a la siguiente o se lo quitamos. 
 + 
 + 
 +Fue muy bonito realizar entre todas este simple script. Nos puso a pensar en la forma más sencilla de rápidamente sacar los datos sin tener que ir página a página copiando y pegando. Fue bonito contar con Gus de Sevilla a los mandos de la consola. 
  
  
  
 {{tag>​Ingoberlab proyectos301}} {{tag>​Ingoberlab proyectos301}}
hackathon_gastos_en_software_estado.1500560545.txt.gz · Última modificación: 2017/07/20 16:22 por fanta