es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que en la función Valide(), la línea status, response = http.request('nameEntered.get') debería cambiarse a status, response = http.request(nameEntered.get()), ya que nameEntered es el objeto Entry y queremos obtener el valor ingresado de él usando el método get().

    Además, la línea nameEntered.pack debería cambiarse a nameEntered.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:

    import tkinter as tk
    from tkinter import ttk
    import bs4 as bs
    from bs4 import BeautifulSoup, SoupStrainer
    import httplib2
    

Comments are closed.