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获取GY-85九轴模块信息示例
Dec 05 Python
在Python的web框架中中编写日志列表的教程
Apr 30 Python
用Python中的字典来处理索引统计的方法
May 05 Python
Python2随机数列生成器简单实例
Sep 04 Python
Python高级特性切片(Slice)操作详解
Sep 27 Python
浅谈python的dataframe与series的创建方法
Nov 12 Python
pandas分别写入excel的不同sheet方法
Dec 11 Python
python3 requests库文件上传与下载实现详解
Aug 22 Python
wxPython实现列表增删改查功能
Nov 19 Python
pyinstaller还原python代码过程图解
Jan 08 Python
python打开文件的方式有哪些
Jun 29 Python
基于python+selenium自动健康打卡的实现代码
Jan 13 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
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
PHP培训要多少钱
2017/06/06 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
微信小程序 wx.request(object) API详解及实例代码
2016/09/30 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
vue 组件简介
2020/07/31 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
使用python实现ANN
2017/12/20 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
python实现3D地图可视化
2020/03/25 Python
通过代码实例了解Python异常本质
2020/09/16 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
jupyter使用自动补全和切换默认浏览器的方法
2020/11/18 Python
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
国际领先的在线时尚服装和配饰店:DressLily
2019/03/03 全球购物
求网格中的黑点分布
2013/11/06 面试题
客服服务心得体会
2013/12/30 职场文书
市场营销职业生涯规划书范文
2014/01/12 职场文书
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
信访稳定工作汇报
2014/10/27 职场文书
2015年公司新年寄语
2014/12/08 职场文书
谢师宴答谢词
2015/01/05 职场文书