python可视化爬虫界面之天气查询


Posted in Python onJuly 03, 2019

执行效果如下:

python可视化爬虫界面之天气查询

python可视化爬虫界面之天气查询

from tkinter import *
import urllib.request
import gzip
import json
from tkinter import messagebox
root = Tk()
def main():
  # 输入窗口
  root.title('Python学习交流群:973783996') # 窗口标题
  Label(root, text='请输入城市').grid(row=0, column=0) # 设置标签并调整位置
  enter = Entry(root) # 输入框
  enter.grid(row=0, column=1, padx=20, pady=20) # 调整位置
  enter.delete(0, END) # 清空输入框
  enter.insert(0, 'Python学习交流群:973783996') # 设置默认文本
  # enter_text = enter.get()#获取输入框的内容
   running = 1
   def get_weather_data(): # 获取网站数据
    city_name = enter.get() # 获取输入框的内容
    url1 = 'http://wthrcdn.etouch.cn/weather_mini?city=' + urllib.parse.quote(city_name)
    url2 = 'http://wthrcdn.etouch.cn/weather_mini?citykey=101010100'
    # 网址1只需要输入城市名,网址2需要输入城市代码
    # print(url1)
    weather_data = urllib.request.urlopen(url1).read()
    # 读取网页数据
    weather_data = gzip.decompress(weather_data).decode('utf-8')
    # 解压网页数据
    weather_dict = json.loads(weather_data)
    # 将json数据转换为dict数据
    if weather_dict.get('desc') == 'invilad-citykey':
      print(messagebox.askokcancel("xing", "你输入的城市名有误,或者天气中心未收录你所在城市"))
    else:
      # print(messagebox.askokcancel('xing','bingguo'))
      show_data(weather_dict, city_name)  def show_data(weather_dict, city_name): # 显示数据
    forecast = weather_dict.get('data').get('forecast') # 获取数据块
    root1 = Tk() # 副窗口
    root1.geometry('650x280') # 修改窗口大小
    root1.title(city_name + '天气状况') # 副窗口标题
     # 设置日期列表
    for i in range(5): # 将每一天的数据放入列表中
      LANGS = [(forecast[i].get('date'), '日期'),
           (forecast[i].get('fengxiang'), '风向'),
           (str(forecast[i].get('fengji')), '风级'),
           (forecast[i].get('high'), '最高温'),
           (forecast[i].get('low'), '最低温'),
           (forecast[i].get('type'), '天气')]
      group = LabelFrame(root1, text='天气状况', padx=0, pady=0) # 框架
      group.pack(padx=11, pady=0, side=LEFT) # 放置框架
      for lang, value in LANGS: # 将数据放入框架中
        c = Label(group, text=value + ': ' + lang)
        c.pack(anchor=W)
    Label(root1, text='今日' + weather_dict.get('data').get('ganmao'),
       fg='green').place(x=40, y=20, height=40) # 温馨提示
    Label(root1, text="StarMan: 49star.com", fg="green", bg="yellow").place(x=10, y=255, width=125,                              height=20) # 作者网站
    Button(root1, text='确认并退出', width=10, command=root1.quit).place(x=500, y=230, width=80, height=40) # 退出按钮
    root1.mainloop() 
  # 布置按键
  Button(root, text="确认", width=10, command=get_weather_data) \
    .grid(row=3, column=0, sticky=W, padx=10, pady=5)
  Button(root, text='退出', width=10, command=root.quit) \
    .grid(row=3, column=1, sticky=E, padx=10, pady=5)
  if running == 1:
    root.mainloop() 
 if __name__ == '__main__':
  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
从零学python系列之数据处理编程实例(二)
May 22 Python
Python pickle类库介绍(对象序列化和反序列化)
Nov 21 Python
Python实现简单状态框架的方法
Mar 19 Python
python图像处理之反色实现方法
May 30 Python
python使用xpath中遇到:到底是什么?
Jan 04 Python
解决Spyder中图片显示太小的问题
Apr 27 Python
Python检查和同步本地时间(北京时间)的实现方法
Dec 03 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
Dec 26 Python
python字符串判断密码强弱
Mar 18 Python
如何实现一个python函数装饰器(Decorator)
Oct 12 Python
想学画画?python满足你!
Dec 24 Python
python opencv旋转图片的使用方法
Jun 04 Python
python读写配置文件操作示例
Jul 03 #Python
Python正则表达式匹配数字和小数的方法
Jul 03 #Python
在python中利用numpy求解多项式以及多项式拟合的方法
Jul 03 #Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
Jul 03 #Python
Python read函数按字节(字符)读取文件的实现
Jul 03 #Python
在Python中COM口的调用方法
Jul 03 #Python
python字符串中匹配数字的正则表达式
Jul 03 #Python
You might like
十天学会php之第八天
2006/10/09 PHP
php中转义mysql语句的实现代码
2011/06/24 PHP
php define的第二个参数使用方法
2013/11/04 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
JS 去除Array中的null值示例代码
2013/11/20 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
简单说明Python中的装饰器的用法
2015/04/24 Python
JS设计模式之责任链模式实例详解
2018/02/03 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
pandas取出重复数据的方法
2019/07/04 Python
浅析PEP572: 海象运算符
2019/10/15 Python
pd.DataFrame统计各列数值多少的实例
2019/12/05 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
ktv收银员岗位职责
2013/12/16 职场文书
酒店营销策划方案
2014/02/07 职场文书
品德与社会教学反思
2016/02/24 职场文书
2019消防宣传标语!
2019/07/10 职场文书