作者ww410490 (致命伸卡球)
看板Python
标题[问题] Tkinter + urllib2
时间Wed Oct 14 14:45:21 2015
各位前辈大大好
小弟练习用Tkinter写GUI
用来查询各个县市的温度
程式码如下
------------------------------------------------------
import urllib2
from sgmllib import SGMLParser
import Tkinter as tk
class WeatherList(SGMLParser):
is_td=""
name=[]
def start_td(self, attrs):
self.is_td = 1
def end_td(self):
self.is_td=""
def handle_data(self, text):
if self.is_td:
self.name.append(text)
temp = ''
hum = ''
root = tk.Tk()
root.title("CWB")
label_1 = tk.Label(root, text = temp)
label_1.pack()
label_2 = tk.Label(root, text = hum)
label_2.pack()
label_3 = tk.Label(root, text = hum)
label_3.pack()
options = ['Taipei_City','New_Taipei_City','Tainan_City']
var = tk.StringVar()
var.set('Taipei_City')
drop = tk.OptionMenu(root,var,'Taipei_City','New_Taipei_City','Tainan_City')
drop.pack()
def Taipei():
mtext = var.get()
url = '
http://www.cwb.gov.tw/V7/forecast/taiwan/' + mtext + '.htm'
print url
content = urllib2.urlopen(url).read()
Tempreature = WeatherList()
Tempreature.feed(content)
data = []
for i in Tempreature.name:
if '\t' not in i:
data.append( i.decode('utf-8'))
print mtext
print 'temp = ', data[0]
print 'humidity = ', data[2]
label_1.config(text = "temp:" + str(data[0]) , fg = "dark green")
label_2.config(text = "humidity:" + str(data[2]) , fg = "dark green")
label_3.config(text = mtext , fg = "dark green")
button0 = tk.Button(root, text='search', width=25, command= Taipei)
button0.pack()
root.mainloop()
-------------------------------------------------------------------
小弟遇到的问题 在於换县市查询时 资料没有正确回传
例如查询Taipei_City 得到的温度 选择Tainan 时温度却不变
但是我已确定查询的网址有正确更改
除此之外想不通是哪边的问题
Any help is appriciated.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.109.161.132
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1444805123.A.788.html
1F:→ AndCycle: 会变动的文字内容要用 textvariable, 不是 text 10/14 15:32
2F:→ ww410490: 感觉是其他问题耶 因为label3可以显示变动的网址 10/14 22:48
3F:→ ww410490: 但是变动的网址却回传同样的资料 10/14 22:48
4F:→ ww410490: 自问自答 因为data又继续存取下个县市的资料 没有清空 10/14 22:53
5F:→ ww410490: 总之谢谢A大提点 10/14 22:54