【发布时间】:2018-10-18 18:15:46
【问题描述】:
我对 python 很陌生,但喜欢它。
我有问题。
我希望从 tkinter 中的按钮解析我的函数 KB 的 url,所以当用户单击 skanderborg 时,它需要和 url 并将其解析为我的函数中的 url,但我无法让它工作。
import requests
from bs4 import BeautifulSoup
import tkinter
from tkinter import *
def kb():
page = requests.get(url)
soup = BeautifulSoup(page.content, 'html.parser')
seven_day = soup.find(class_="today_nowcard-container")
forecast_items = seven_day.find_all(class_="today_nowcard-main")
details_items = seven_day.find(class_="today_nowcard-section")
place = seven_day.find(class_="today_nowcard-location").get_text()
daily_temp = seven_day.find(class_="today_nowcard-temp").get_text()
cloud = seven_day.find(class_="today_nowcard-phrase").get_text()
print(place)
print(daily_temp)
print(cloud)
data = ("place" + "cloud")
return place, cloud, daily_temp
var2 = kb()
top = tkinter.Tk()
placevar1 = StringVar()
placevar1.set(var2)
label = Label(top, textvariable=placevar1 )
B = tkinter.Button(top, text ="Copenhagen", command = kb)
B2 = tkinter.Button(top, text ="Skanderborg", command=lambda: kb(url ="https://weather.com/weather/today/l/ad60b9f8e5bf7d9baa35aefb5e724782692ad6b7a35f43ee43caa4182838eef7"))
label.pack()
B.pack()
B2.pack()
top.mainloop()
【问题讨论】:
-
您的代码格式不正确:您的返回在函数之外;您在函数内部有未定义的变量
url— Python 无法猜测您要传递 url,因此您需要将函数的定义更改为def kb(url):。
标签: python python-3.x tkinter