comcomUBA / dcubabot

MIT License
21 stars 27 forks source link

Enviar mensaje cuando hay concierto en River #72

Closed crivasr closed 10 months ago

crivasr commented 11 months ago

La verdad es que no me gustó hacerlo asi. Si cambian los tags en algun momento hay que cambiarlo todo para scrapear y hay que hacer malabares con los locales para parsear la fecha.

Encontré despues esto https://serpapi.com/google-events-api que ya scrapea eventos de google. Supuestamente te da 100 requests gratis por mes, se podria crear una cuenta ahi para sacar los datos

crivasr commented 11 months ago

@rozen03

franciscod commented 11 months ago

encontré una alternativa para buscar los proximos conciertos, no se que tan fiable será: https://www.songkick.com/es/venues/4514007-estadio-river-plate

(tienen una api que sale $500 USD/mes)

franciscod commented 11 months ago

otra fuente posible: https://indiehoy.com/eventos/

crivasr commented 11 months ago

encontré una alternativa para buscar los proximos conciertos, no se que tan fiable será: https://www.songkick.com/es/venues/4514007-estadio-river-plate

(tienen una api que sale $500 USD/mes)

Parece mas facil de scrapear esa, nos ahorramos la suscripcion jajasj

franciscod commented 11 months ago

capaz se puede usar alguna api de google? si la data de ellos es buena tal vez sea buena idea

(idea de Rozen)

crivasr commented 11 months ago

No hay una api de ellos todavia, hay un issue del 2019 donde lo piden

crivasr commented 11 months ago

Por si crapeamos de alguna de las 2 que mandaste @franciscod se puede hacer con esto

print("indiehoy: ")
browser.open("https://indiehoy.com/eventos/")

for el in browser.select(".list-style-event"):
    lugar = el.select(".location")[0].text
    fecha = el.select(".dtstart")[0].text
    titulo = el.select(".summary")[0].text

    if "River" not in lugar:
        continue
    print(lugar, fecha, titulo)

print("")
print("songkick: ")
browser.open("https://www.songkick.com/venues/4514007-estadio-river-plate/calendar")

for el in browser.select(".microformat"):
    info = json.loads(el.select("script")[0].text)[0]
    lugar = info["location"]["name"]
    fecha = info["startDate"]
    titulo = info["name"] # = info["performer"][0]["name"]

    print(lugar, fecha, titulo)

me dio esto:

indiehoy: 
Estadio River Plate 21/11/2023 Roger Waters en Argentina
Estadio River Plate 22/11/2023 Roger Waters en Argentina
Estadio River Plate 24/11/2023 Red Hot Chili Peppers en Argentina

songkick: 
Estadio River Plate 2023-11-21 Roger Waters
Estadio River Plate 2023-11-22 Roger Waters
Estadio River Plate 2023-11-24 Red Hot Chili Peppers
Estadio River Plate 2023-11-24T18:00:00-0300 Irontom
Estadio River Plate 2023-11-26 Red Hot Chili Peppers
Estadio River Plate 2023-11-26T18:00:00-0300 Irontom
Estadio River Plate 2023-12-08T20:00:00-0300 Tan Bionica
Estadio River Plate 2024-03-23T20:00:00-0300 Maria Becerra
rozen03 commented 11 months ago

Convengamos q si hay un recital en river songkick lo va a tener, se dedican a eso y river no es el teatro flores (?)

rozen03 commented 11 months ago

Si te da mucha duda y tenes ganas de ser hyper preciso, dado q son cosas bastante planeadas, se pueden hacer varias consultas a lugares distintos y compaginar

crivasr commented 11 months ago

Nah, creo que con songkick es suficiente. No los conocia pero parece bien cuidada la pagina

crivasr commented 11 months ago

Lo de los partidos tambien intentaria ver algun lado para scrapear partidos de la seleccion. Por ahora solo da info de partidos de river

rozen03 commented 10 months ago

LGTM

rozen03 commented 10 months ago

@franciscod ya q estas investido en esto miratelo vos tambien antes de q lo mergee.

franciscod commented 10 months ago

mergealo noma