Cargando
SecurityInside.info
  • Sobre SecurityInside
  • GitHub
  • Click to open the search input field Click to open the search input field Buscar
  • Menú Menú
  • Link to X
  • Link to Rss this site
  • Link to Youtube

Seguro que te interesa (GitHub behind the scenes – parte 1)

22 marzo, 2017/en Desarrollo, Herramientas/por Cristóbal Espinosa

Esta entrada es un poco atípica, realmente no es más que una excusa para presentaros el nuevo repositorio en GitHub de esta web.

Poco a poco quiero ir ofreciendo los scripts que me hacen la vida más sencilla y que pueden ayudaros en ciertas tareas. Para estrenar el repo, he pensado en contar cómo hago la entrada de los Viernes en las que os listo las noticias que me han parecido más interesantes de la semana.

Tras unas cuantas entradas en las que iba recopilando enlaces a mano, decidí que así no podía continuar. Como dice un gran amigo, soy muy vago, pero vago de los buenos. Eso me hace pensar en cómo automatizar absolutamente todo lo que hago para que las tareas repetitivas las haga una CPU y yo pueda centrarme en ideas felices o a imaginar qué isla me compraré cuando me toque la lotería.

Gracias a lo de internet, tiro de Twitter para estar al tanto de las noticias de última hora y suelo hacer retweet de lo que me llama la atención. Noticias, herramientas, análisis, humor… pero todo relacionado con lo que me apasiona, la seguridad de la información.

Como últimamente le he cogido cariño a Python (al pitón como le llamo alegremente por la oficina de Dive), decidí tirar de un poco de crawling vía BeautifulSoup para buscar en twitter ciertos elementos.

Básicamente lo que hago es abrir la página de Twitter de SecurityInside y busco todos los retweets. De cada uno, me quedo con los elementos interesantes (título, autor, imágen y texto) y los pongo en forma de tabla para que se vea de forma decente como una entrada del blog. Básicamente esto:

# Get retweet info
# ---------------------------------------------------------------------------------------
req = requests.get(url)
statusCode = req.status_code

if statusCode == 200:

    html = BeautifulSoup(req.text, "html.parser")

    for timeline in html.find_all('div', {'data-test-selector':'ProfileTimeline'}):
        for oltag in timeline.find_all('ol', {'id':'stream-items-id'}):
            for litag in oltag.find_all('li'):
                for div in litag.find_all('div', {"class" : "tweet"}):
                    try:
                        if div['data-retweet-id']:

                            for small in litag.find_all('small', {"class" : "time"}):
                                for a in small.find_all('a', {"class" : "tweet-timestamp"}):
                                    try:
                                        date = a['title'].encode("ascii", "ignore")

                                    except Exception as e:
                                        None

                            title = div.find('p', {'class':'TweetTextSize'}).getText().split('http')[0].encode("ascii", "ignore")

                            link = div.find('a', {'class':'twitter-timeline-link'}).getText().encode("ascii", "ignore")

                            name = div.find('span', {'class':'username'}).getText().split('@')[1].encode("ascii", "ignore")
							
                            for img in div.find_all('img'):
                                if 'avatar' in img:
                                    image = 'http://securityinside.info/wp-content/uploads/logo.png'
                                else:
                                    image = img['src'].encode("ascii", "ignore")

                            print '<tr><td style="vertical-align:middle;border:0px;margin: 0px 0px"><img class="aligncenter" src="' + image + '" alt="' + name + '" width="150"/></td>\n<td style="vertical-align:middle;border:0px;margin: 0px 0px"><strong><a href="https://twitter.com/' + name + '" target="_blank">' + date + ' @' + name + ':<br></a></strong> <a href="' + link + '" target="_blank">' + title + '</a></td></tr>'

                    except Exception as e:
                        None

else:
    print "Status Code %d" %statusCode

El ejemplo es sólo parte del script completo. Si quieres utilizarlo o modificarlo, puedes descargarlo desde nuestro repositorio en GitHub.

Twitter-to-post

 

Como podéis ver, sólo tengo que copiar la línea que me genera el script e insertarla en la entrada. La tarea se completa añadiendo el texto habitual y configurando las categorías, la imágen y los valores SEO.

Vale, me vais a decir que eso también se puede automatizar. La respuesta es que si, por eso os dejo pendiente la segunda parte del artículo en la que dedicaré otro rato a generar la entrada completa (insertando en base de datos y demás).

Pero poco a poco, que estoy un poco liado gestionando los backups anti malware de la junta directiva… pero eso es otra historia que os voy a contar en breve.

¿Os lo vais a perder?

  • Acerca de
  • Últimas entradas
Cristóbal Espinosa
Cristóbal Espinosa
Head of Cloud & Infra Security en Flywire
Líder en seguridad en la nube con más de 15 años de experiencia en el diseño y la ampliación de la seguridad en entornos de AWS. Actualmente dirijo el área de seguridad en la nube de una empresa global de tecnología financiera.

Me especializo en la creación de arquitecturas en la nube seguras y escalables en entornos regulados (tecnología financiera, banca, salud, industria farmacéutica), combinando una profunda experiencia técnica con liderazgo estratégico.

Ámbito actual:
• Gestión de la seguridad en más de 40 cuentas de AWS en una configuración de múltiples cuentas.
• Dirección de la estrategia, la gobernanza y la arquitectura de seguridad en la nube.
• Impulso de prácticas de DevSecOps y seguridad desde el diseño.

Resultados demostrados:
• Reducción del riesgo de seguridad en un 40%.
• Optimización de los costes de la nube en un 15%.
• Superación con éxito de auditorías sin incidencias (PCI-DSS, SOC2, CSA).

Competencias principales:
• Seguridad de AWS (IAM, GuardDuty, Security Hub, Config, Inspector, Detective, Macie).
• Estrategia de cuentas múltiples, SCP y gobernanza a gran escala.
• Cumplimiento normativo y gestión de riesgos en entornos regulados.

Me gusta trabajar en la intersección entre la seguridad, la ingeniería y los negocios, ayudando a las organizaciones a crecer de forma segura sin frenar la innovación.

Anteriormente trabajé en Accenture (responsable de seguridad de AWS), liderando iniciativas de seguridad en la nube para clientes empresariales.
Cristóbal Espinosa
Últimas entradas de Cristóbal Espinosa (ver todo)
  • Pathfinding Labs: el “parque de atracciones” en AWS Security - 19 mayo, 2026
  • De una credencial olvidada al control total: cómo se materializan los ataques en cloud - 20 abril, 2025
  • HIPAA: Protegiendo la Privacidad y Seguridad de la información médica con AWS - 13 septiembre, 2024

¿Nos ayudas a compartir?

  • Compartir en X (Se abre en una ventana nueva) X
  • Compartir en LinkedIn (Se abre en una ventana nueva) LinkedIn
  • Comparte en Facebook (Se abre en una ventana nueva) Facebook
  • Haz clic en Pinterest (Se abre en una ventana nueva) Pinterest
  • Compartir en Reddit (Se abre en una ventana nueva) Reddit
  • Enviar un enlace a un amigo por correo electrónico (Se abre en una ventana nueva) Correo electrónico

Relacionado

Etiquetas: beautifulsoup, crawling, github, Python, repositorio, Twitter
Compartir esta entrada
  • Compartir en WhatsApp
https://www.securityinside.info/wp-content/uploads/seguro-interesa-behind.jpg 450 800 Cristóbal Espinosa https://securityinside.info/wp-content/uploads/logo.png Cristóbal Espinosa2017-03-22 22:42:402024-11-06 12:21:30Seguro que te interesa (GitHub behind the scenes – parte 1)
Quizás te interese
security-api Security API – Dale a tus empleados lo que necesitan (de forma segura)
de-charleta De Charleta: “Python 4 Kids” (Antonio García Martínez)
Twittor controlando los bots a través de Twitter Twittor: Controla tus bots utilizando Twitter como servidor C&C

Categorías

  • Anonimato (18)
  • Auditoría (30)
  • Charlas y ponencias (68)
  • Cloud Security (9)
  • Control de acceso (29)
  • Desarrollo (32)
  • Dispositivos (19)
  • Eventos (25)
  • Exploiting (6)
  • Forense (6)
  • Formación (39)
  • Gobierno IT (36)
  • Hacking (20)
  • Herramientas (26)
  • I+D (13)
  • Ingeniería inversa (6)
  • ISO 27001 (10)
  • Live (20)
  • Malware (22)
  • Noticias (54)
  • Pentesting (12)
  • Privacidad (39)
  • Sin categoría (1)
  • Vulnerabilidades (24)

Archivo

  • mayo 2026
  • abril 2025
  • septiembre 2024
  • junio 2024
  • abril 2024
  • marzo 2024
  • enero 2021
  • septiembre 2020
  • abril 2020
  • febrero 2020
  • enero 2020
  • octubre 2019
  • septiembre 2019
  • julio 2019
  • junio 2019
  • mayo 2019
  • abril 2019
  • febrero 2019
  • enero 2019
  • octubre 2018
  • agosto 2018
  • mayo 2018
  • abril 2018
  • marzo 2018
  • febrero 2018
  • diciembre 2017
  • noviembre 2017
  • octubre 2017
  • septiembre 2017
  • julio 2017
  • junio 2017
  • mayo 2017
  • abril 2017
  • marzo 2017
  • febrero 2017
  • enero 2017
  • diciembre 2016
  • noviembre 2016
  • octubre 2016
  • septiembre 2016
  • julio 2016
  • junio 2016
  • mayo 2016
  • abril 2016
  • marzo 2016
  • febrero 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • octubre 2015
  • septiembre 2015
  • agosto 2015
  • julio 2015
  • junio 2015
  • mayo 2015
  • abril 2015
  • marzo 2015
[2015 - 2024] - SecurityInside.info - Segura gracias a Defender Eye
  • Link to X
  • Link to Rss this site
  • Link to Youtube
Link to: ¡Seguro que te interesa! – 36 Link to: ¡Seguro que te interesa! – 36 ¡Seguro que te interesa! – 36seguro-interesa Link to: ¡Seguro que te interesa! – 37 Link to: ¡Seguro que te interesa! – 37 seguro-interesa¡Seguro que te interesa! – 37
Desplazarse hacia arriba Desplazarse hacia arriba Desplazarse hacia arriba