2017-04-05 5 views
0

私はTkinterを使用しようとしています。私のプログラムを実行するときに、ボタン付きのポップアップが現れるはずです。ボタンを押すと、コードが実行され、サイトが解析されます。解析自体はうまくいきましたが、Tkinterではそれができません。また、コードはボタンが押される前に実行されます。誰かが私が作った間違いを指摘できるなら、私はとても感謝しています。Tkinterは関数を実行しません

from lxml import html 
import requests 
from bs4 import BeautifulSoup 

def news(): 
    page = requests.get('http://www.globo.com/index.html') 

    soup = BeautifulSoup(page.content, 'html.parser') 
    bbb = soup.find_all('p', class_='hui-premium__title') 
    for item in bbb: 
     ccc = item.get_text('p') 
     print(ccc) 


from tkinter import * 
master = Tk() 

b = Button(master, text="latest news", command='news()') 
b.pack() 

mainloop() 
+0

は、手動でコードをフォーマットするためにHTMLを使用しないでください。貼り付けて選択し、 '{}'ボタンをクリックするか、Ctrl + Kを押してください。これは、4つのスペースでインデントし、Stack Overflowにコードとして書式を設定するよう指示します。 – Chris

答えて

0

Button作成コードでnews()から()を削除します。ボタンを作成するときに関数を実行する必要はありません。あなたは将来の使用のためにそれを登録したいと思う。

1

command属性には、文字列ではなく呼び出し可能な関数を指定する必要があります。例えば

b = Button(..., command=news) 
関連する問題