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高手之路python处理excel文件(方法汇总)
Jan 07 Python
python套接字流重定向实例汇总
Mar 03 Python
Python过滤列表用法实例分析
Apr 29 Python
Python基于Matplotlib库简单绘制折线图的方法示例
Aug 14 Python
pygame实现俄罗斯方块游戏
Jun 26 Python
Pycharm设置去除显示的波浪线方法
Oct 28 Python
python字典一键多值实例代码分享
Jun 14 Python
Python 实现还原已撤回的微信消息
Jun 18 Python
Python调用C语言的实现
Jul 26 Python
Python简易计算器制作方法代码详解
Oct 31 Python
使用darknet框架的imagenet数据分类预训练操作
Jul 07 Python
python中判断数字是否为质数的实例讲解
Dec 06 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
8个PHP数组面试题
2015/06/23 PHP
PHP实现事件机制的方法
2015/07/10 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
2016/01/11 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
2016/09/23 PHP
脚本之家贴图转换+转贴工具用到的js代码超级推荐
2007/04/05 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
JavaScript的事件机制详解
2017/01/17 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
django 实现电子支付功能的示例代码
2018/07/25 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
Django框架表单操作实例分析
2019/11/04 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
如何用python 操作zookeeper
2020/12/28 Python
颇特女士香港官网:NET-A-PORTER香港
2021/03/08 全球购物
神路信息Java面试题目
2013/03/31 面试题
项目开发计划书
2014/01/09 职场文书
美术教学感言
2014/02/22 职场文书
幼儿园老师寄语
2014/04/03 职场文书
大学生应聘求职信
2014/05/26 职场文书
公证委托书格式
2014/09/13 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书
2015年加油站工作总结
2015/05/13 职场文书
Python数据处理的三个实用技巧分享
2022/04/01 Python