No hay una única solución pero dejare un ejemplo para que puedas coger alguna idea, es preferible que ya lo tengas resuelto antes de mirarlo.
import requests
import webbrowser
from bs4 import BeautifulSoup
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
from tkinter import scrolledtext
def pin():
a=se.get()
webbrowser.open(link[a], new=2, autoraise=True)
web=requests.get(«http://www.obligao.com/?op=catalogue»)
soup=BeautifulSoup(web.text, «html.parser»)
cancion=soup.find_all(«div», attrs={«class»:»link»})
x=len(cancion)
tema=[]
link=[]
for i in range (0,x):
y=cancion[i]
y=y.find(«a»)[«href»]
link.append(y)
z=cancion[i]
z=z.text
tema.append(z)
w3= Tk()
w3.title(«Mi App»)
w3.configure(bg=»»)
w3.geometry(«700×500»)
lb=Label(w3,text=»NUEVAS CANCIONES DEOBLIGAO.COM»,bg=»black»,fg=»white», padx=5, pady=5)
lb.grid(row=0, column=1)
se=IntVar()
z=0
ñ=10
for i in range (1,31):
rad=Radiobutton(w3,text=tema[i-1],val=[i-1],var=se,bg=»white»,fg=»black»,command=pin, padx=10, pady=10)
rad.grid(row=ñ,column=z)
ñ=ñ+1
if (i==10):
z=z+1
ñ=ñ-10
if (i==20):
z=z+1
ñ=ñ-10
AlainSQ
