Ejemplo de Web Scrapping: Horóscopos.

Hace unos meses tuve la oportunidad de asistir a una conferencia de ingeniería de datos y me quede sorprendido con la presentación de uno de las invitados. Aunque no recuerdo su nombre, si recuerdo que era ingles y tenia un background súper completo. Era algo así como diseñador gráfico, programador, científico de datos, entre muchas otras cosas. Durante su ponencia este señor presentó un estudio acerca de la frecuencia de palabras en los horóscopos, así que decidí hacer algo similar.

Ahora bien, yo no sé mucho de horóscopos, lo que si se es que fue muy difícil encontrar una fuente de datos(en este caso horóscopos) que fuera lo bastante grande para analizar. Después de mucho buscar encontré el blog de «Nana Calistar», un astrólogo(?) muy famoso en redes sociales.

Una vez que comprobé que el blog de esta persona era lo bastante bueno para analizar, escribí un script que lo recorriera, analizara sus entradas y guardara los horóscopos para cada signo del zodiaco:

import requests
from bs4 import BeautifulSoup
url = 'http://jaalamperez.blogspot.com/'
# Guardar lo que se scrapea
fechas = []
signos = []
horoscopos = []
while url:
print(url)
# logica
req = requests.get( url = url )
soup = BeautifulSoup(req.text, 'lxml')
fechas.append( url[51:61] )
for s in soup.find_all('h3'):
signos.append(s.text.strip())
for h in soup.find_all('div', {'class': 'MsoNormal'}):
h = h.text.strip()
h = h.replace( '(adsbygoogle = window.adsbygoogle || []).push({});', '' )
h = ' '.join( h.split() )
horoscopos.append(h)
url = soup.find('a', {'class': 'blog-pager-older-link'})
if url:
url = url.attrs['href']
view raw codigo.py hosted with ❤ by GitHub

PD: Estoy muy ocupado haciendo cosas de beisbol y no he tenido el tiempo para realizar el analisis de frecuencias de palabras.

Deja un comentario