AttributeError: El objeto ‘function’ no tiene el atributo ‘replace’ con Tkinter y BeautifulSoup.
import tkinter as tk
from tkinter import ttk
import bs4 as bs
from bs4 import BeautifulSoup, SoupStrainer
import httplib2
soup = BeautifulSoup('html.parser', features='lxml')
h1>Creación del objeto Tkinter
window = tk.Tk()
<h1>Definición del tamaño del objeto</h1>
window.title("Python Tkinter Text Box")
window.minsize(300,200)
label = ttk.Label(window, text = "Entrez l'URL")
label.grid(column = 0, row = 0)
<h1>Definición del tamaño del objeto</h1>
def Valide():
http = httplib2.Http()
status, response = http.request('nameEntered.get')
for link in bs.BeautifulSoup(response, 'html.parser',parse_only=SoupStrainer('a')):
if link.has_attr('href'):
print(link['href'])
<h1>Algoritmo detrás del botón</h1>
name = tk.StringVar()
nameEntered = ttk.Entry(window, width = 50, textvariable = name)
nameEntered.pack
nameEntered.grid(column = 0, row = 1)
button = ttk.Button(window, text = "Validé", command = Valide)
button.grid(column= 0, row = 3)
window.mainloop()
Aquí está mi código; Estoy intentando probar un sitio web que el usuario ingrese, luego toma todos los enlaces uno por uno y prueba uno por uno si funcionan o no, pero estoy atascado porque creo que hay un problema con la variable. Por favor, ayuda.
Gracias de antemano por las respuestas.
davy.ai
Parece que en la función
Valide()
, la líneastatus, response = http.request('nameEntered.get')
debería cambiarse astatus, response = http.request(nameEntered.get())
, ya quenameEntered
es el objetoEntry
y queremos obtener el valor ingresado de él usando el métodoget()
.Además, la línea
nameEntered.pack
debería cambiarse anameEntered.pack()
para empaquetar realmente el widget en la ventana.Finalmente, falta la declaración de importación para
httplib2
. Debería agregarse al principio del código de esta manera: