精华内容
下载资源
问答
  • python 天气预报

    2017-07-11 08:54:38
    python 天气预报
    **# -*- coding: cp936 -*-**
    
    
    import urllib2
    import re
    
    #http://qq.ip138.com/tianqi/
    url = "http://qq.ip138.com/10/tianqi/"
    
    class Weather():
            def __init__(self):
                    pass
    
            def getHtml(self, url):
                    req = urllib2.Request(url)
                    res = urllib2.urlopen(req)
                    html = res.read()
                    res.close()
                    return html
    
            def getWeather(self, html):
                    patteraddress=re.compile(r'<ul class="query-hd">(.*)</ul>')
                    address=patteraddress.findall(html)
                    p=re.compile(r'<li(.*?)</li>')
                    address1=p.findall(address[0])
                    #print address
                    len1=len(address1)
                    for i in xrange(len1):
                        riqip=re.compile(r'<div class="date">(.*?)<font color="red">(.*?)</font></div>|<div class="date">(.*?)</div>')
                        riqi=riqip.findall(address1[i])
                        print '----------------------------------'
                        if i==0:
                            print (riqi[0][0]+riqi[0][1]).decode('utf8')
                        else:
                            print riqi[0][-1].decode('utf8')
                        tianqip=re.compile(r'alt="(.*?)"')
                        tianqi=tianqip.findall(address1[i])
                        for j in tianqi:
                            print j.decode('utf8')
                        wendup=re.compile(r'<div class="temperature">(.*?)</div>')
                        wendu=wendup.findall(address1[i])
                        for i in wendu:
                            print i.decode('utf8')
                    print '----------------------------------'
    
    
    
    if __name__ == "__main__":
            weather = Weather()
            weather.getWeather(weather.getHtml(url))
            input()

    “`

    展开全文
  • python天气预报

    2018-07-11 11:04:28
    # 1.引入requests import requests ... 查询实时天气 :return: None """ query_city = input('* 请输入要查询的城市名称: ') # 2.准备url地址 url = 'http://api.map.baidu.com/tel...
    
    
    # 1.引入requests
    import requests
    def query_now():
        """
        查询实时天气
        :return: None
        """
        query_city = input('*     请输入要查询的城市名称:       ')
        # 2.准备url地址
        url = 'http://api.map.baidu.com/telematics/v3/weather?location=%s&output=json&ak=TueGDhCvwI6fOrQnLM0qmXxY9N0OkOiQ&callback=?' % query_city
        # 3.发请求,接收数据
        response = requests.get(url)
        # 4.转换为字典或列表
        result = response.json()
        error = result['error']
        # 判断输入的城市是否存在
        if error != 0:
            query_city = input('输入城市不存在,请重新输入:')
        else:
            print('~~~~~~~~~~~~~~~~~~~~~~')
            results = result['results']
            # 取出数据字典
            data = results[0]
            # 取出城市
            city = data['currentCity']
            print('*     查询城市: %s' % city)
            # 取出pm2.5值
            pm25 = data['pm25']
            print('*     Pm值    : %s' % pm25)
            # 将字符串转换为整数 否则无法比较大小
            pm25 = int(pm25)
            # 通过pm2.5的值大小判断污染指数
            if 0 <= pm25 < 35:
                pollution = '优'
            elif 35 <= pm25 < 75:
                pollution = '良'
            elif 75 <= pm25 < 115:
                pollution = '轻度污染'
            elif 115 <= pm25 < 150:
                pollution = '中度污染'
            elif 150 <= pm25 < 250:
                pollution = '重度污染'
            elif pm25 >= 250:
                pollution = '严重污染'
            print('*     污染指数: %s' % pollution)
            result1 = results[0]
            weather_data = result1['weather_data']
            data = weather_data[0]
            temperature_now = data['date']
            print('*     当前温度: %s' % temperature_now)
            wind = data['wind']
            print('*     风向    : %s' % wind)
            weather = data['weather']
            print('*     天气    : %s' % weather)
            temperature = data['temperature']
            print('*     温度    : %s' % temperature)
    
    def query_future():
        """
        查询未来三天天气
        :return: None
        """
        query_city = input('*     请输入要查询的城市名称:       ')
        url = 'http://api.map.baidu.com/telematics/v3/weather?location=%s&output=json&ak=TueGDhCvwI6fOrQnLM0qmXxY9N0OkOiQ&callback=?' % query_city
        # 发请求,接收数据
        response = requests.get(url)
        # 转换为字典或列表
        result = response.json()
        error = result['error']
        if error != 0:
            query_city = input('输入城市不存在,请重新输入:')
            return
        result_data = result['results'][0]
        # 取出城市
        city = result_data['currentCity']
    
        print('********%s未来三天天气预报********' % city)
        # 取出天气数据
        weather_data = result_data['weather_data']
    
        for x in range(1, len(weather_data)):
            wea_dict = weather_data[x]
    
            print('*    日期  :%s' % wea_dict['date'])
            print('*    天气  :%s' % wea_dict['weather'])
            print('*    风向  :%s' % wea_dict['wind'])
            print('*    温度  :%s' % wea_dict['temperature'])
    
            print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
    
        print('')
    while True:
        print('*     欢迎使用智游天气查询工具     *')
        print('*     1.查询实时天气                ')
        print('*     2.查询未来三天天气            ')
        print('*     0.退出程序                    ')
        query_select = int(input('*     请输入您的操作:               '))
        while query_select < 0 or query_select > 2:
            query_select = int(input('输入错误请重新输入您的操作:'))
        if query_select == 1:
            query_now()
        elif query_select == 2:
            query_future()
        else:
            print('*     欢迎下次使用!                 ')
            break
    
    
    
    展开全文
  • Python 天气预报

    2017-08-04 10:33:37
    /usr/bin/env python # coding=utf-8 import httplib import json httpClient = None try: httpClient = httplib.HTTPConnection('api.map.baidu.com', 80, timeout=30) httpClient.request('GET',
    # !/usr/bin/env python
    # coding=utf-8
    import httplib
    import json
    
    httpClient = None
    try:
        httpClient = httplib.HTTPConnection('api.map.baidu.com', 80, timeout=30)
        httpClient.request('GET',
                           '/telematics/v3/weather?location=%E6%AD%A6%E6%B1%89&output=json&ak=KPGX6sBfBZvz8NlDN5mXDNBF&callback=')
    
        response = httpClient.getresponse()
        s = json.loads(response.read());
        print s["results"][0]["currentCity"]
        print s["results"][0]["weather_data"][0]["date"]
        print s["results"][0]["weather_data"][0]["weather"]
        print s["results"][0]["weather_data"][0]["wind"]
        print s["results"][0]["weather_data"][0]["temperature"]
    
    except Exception, e:
        print e
    finally:
        if httpClient:
            httpClient.close()
    
    /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Users/wangms/PycharmProjects/Python/weather/weather.py
    武汉
    周五 08月04日 (实时:33℃)
    阵雨转多云
    无持续风向微风
    35 ~ 27℃
    
    Process finished with exit code 0

    展开全文
  • 1、获取天气数据1、输入要查询天气的城市2、利用urllib模块向中华万年历天气api接口请求天气数据3、利用gzip解压获取到的数据,并编码utf-84、利用json转化成python识别的数据,返回为天气预报数据复杂形式的字典...

    本系统主要包括四个函数:

    1、获取天气数据

    1、输入要查询天气的城市

    2、利用urllib模块向中华万年历天气api接口请求天气数据

    3、利用gzip解压获取到的数据,并编码utf-8

    4、利用json转化成python识别的数据,返回为天气预报数据复杂形式的字典(字典中的字典)

    2、输出当天天气数据

    1、格式化输出当天天气,包括:天气状况,此时温度,最高温度、最低温度,风级,风向等。

    3,语音播报当天天气

    1、创建要输出的语音文本(weather_forecast_txt)

    2、利用百度的语音合成模块AipSpeech,合成语音文件

    3,利用playsound模块播放语音

    4、未来几天温度变化趋势

    1、创建未来几天高低温数据的字典

    2,利用matplotlib模块,图形化温度变化趋势

    5、代码

    #导入必要模块

    import urllib.parse

    import urllib.request

    import gzip

    import json

    import playsound

    from aip import AipSpeech

    import matplotlib.pyplot as plt

    import re

    #设置参数,图片显示中文字符,否则乱码

    plt.rcParams['font.sans-serif']=['SimHei']

    #定义获取天气数据函数

    def Get_weather_data():

    print('------天气查询------')

    city_name = input('请输入要查询的城市名称:')

    url = 'http://wthrcdn.etouch.cn/weather_mini?city=' + urllib.parse.quote(city_name)

    weather_data = urllib.request.urlopen(url).read()

    # 读取网页数据

    weather_data = gzip.decompress(weather_data).decode('utf-8')

    # #解压网页数据

    weather_dict = json.loads(weather_data)

    return weather_dict

    #定义当天天气输出格式

    def Show_weather(weather_data):

    weather_dict = weather_data

    if weather_dict.get('desc') == 'invilad-citykey':

    print('你输入的城市有误或未收录天气,请重新输入...')

    elif weather_dict.get('desc') == 'OK':

    forecast = weather_dict.get('data').get('forecast')

    print('日期:', forecast[0].get('date'))

    print('城市:', weather_dict.get('data').get('city'))

    print('天气:', forecast[0].get('type'))

    print('温度:', weather_dict.get('data').get('wendu') + '℃ ')

    print('高温:', forecast[0].get('high'))

    print('低温:', forecast[0].get('low'))

    print('风级:', forecast[0].get('fengli').split('<')[2].split(']')[0])

    print('风向:', forecast[0].get('fengxiang'))

    weather_forecast_txt = '您好,您所在的城市%s,' \

    '天气%s,' \

    '当前温度%s,' \

    '今天最高温度%s,' \

    '最低温度%s,' \

    '风级%s,' \

    '温馨提示:%s' % \

    (

    weather_dict.get('data').get('city'),

    forecast[0].get('type'),

    weather_dict.get('data').get('wendu'),

    forecast[0].get('high'),

    forecast[0].get('low'),

    forecast[0].get('fengli').split('<')[2].split(']')[0],

    weather_dict.get('data').get('ganmao')

    )

    return weather_forecast_txt,forecast

    #定义语音播报今天天气状况

    def Voice_broadcast(weather_forcast_txt):

    weather_forecast_txt = weather_forcast_txt

    APP_ID = 你的百度语音APP_ID

    API_KEY = 你的百度语音API_KEY

    SECRET_KEY = 你的百度语音SECRET_KEY

    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)

    print('语音提醒:', weather_forecast_txt)

    #百度语音合成

    result = client.synthesis(weather_forecast_txt, 'zh', 1, {'vol': 5})

    if not isinstance(result, dict):

    with open('sound2.mp3', 'wb') as f:

    f.write(result)

    f.close()

    #playsound模块播放语音

    playsound.playsound(r'C:\Users\ban\Desktop\bsy\sound2.mp3')

    #未来四天天气变化图

    def Future_weather_states(forecast):

    future_forecast = forecast

    dict={}

    #获取未来四天天气状况

    for i in range(5):

    data = []

    date=future_forecast[i]['date']

    date = int(re.findall('\d+',date)[0])

    data.append(int(re.findall('\d+',future_forecast[i]['high'])[0]))

    data.append(int(re.findall('\d+', future_forecast[i]['low'])[0]))

    data.append(future_forecast[i]['type'])

    dict[date] = data

    data_list = sorted(dict.items())

    date=[]

    high_temperature = []

    low_temperature = []

    for each in data_list:

    date.append(each[0])

    high_temperature.append(each[1][0])

    low_temperature.append(each[1][1])

    fig = plt.plot(date,high_temperature,'r',date,low_temperature,'b')

    plt.xlabel('日期')

    plt.ylabel('℃')

    plt.legend(['高温','低温'])

    plt.xticks(date)

    plt.title('最近几天温度变化趋势')

    plt.show()

    #主函数

    if __name__=='__main__':

    weather_data = Get_weather_data()

    weather_forecast_txt, forecast = Show_weather(weather_data)

    Future_weather_states(forecast)

    Voice_broadcast(weather_forecast_txt)

    6、最终效果

    1903877-20200109140844417-629495729.png

    展开全文
  • Python天气预报查询

    千次阅读 2020-01-31 16:30:14
    功能: 实现城市天气预报查询,并提供未来四天查询 两个网站接口,直接返回数据,之后对数据进行读取和处理,很简单的小程序 效果图: 代码实现: import urllib.request import gzip import json print('------...
  • 1、首先利用request库去请求数据,天气预报使用的是和风天气的API(www.heweather.com/douments/api/s6/weather-forecast),注册完成得到一个key。2、利用python的jinja2模块写一个html模板,用于展示数据3、python...
  • 但是啊,小编为了讨得仰慕已久的女神的欢心(真香),便用python爬取了爱词霸网站的每日一句和天气预报网站的天气预报,并且每天定时将内容推送到女神的手机短信中(代码实现,不需要短信费哦)。好东西要学会分享,...
  • python 天气预报获取

    千次阅读 2017-12-05 11:40:29
    通过对地名的编码获取,通过编码获取到天气信息 源码如下:# -*- encoding: utf-8 -*- import urllib2 from cityCode import city import jsonlocation = raw_input('请输入你需要查询的城市名字:')citycode="...
  • 爬虫简单说来包括两个步骤:获得网页文本、过滤得到数据。... python在获取html方面十分方便,寥寥数行代码就可以实现我们需要的功能。... 2、根据正则表达式等获得... python正则表达式的使用也很简洁。我的上一篇文章《Pyth
  • python 天气预报爬虫

    2020-05-01 17:45:54
    x[‘min_temp’],data)) # print(temps) # chart = Bar(“中国天气最低气温排行榜”) # chart.add(‘柱状图’,cities,temps) # chart.render(‘temperature.html’) bar = Bar() bar.add_xaxis(cities) bar.add_...
  • import requests from bs4 import BeautifulSoup import xlwt import time headers = { 'User-Agent':'Mozilla/5.0'} ...weather_str = requests.get...workbook.save("{}7天天气{}.xls".format("chengdu",time.time()))
  • Python天气预报采集器(网页爬虫)

    千次阅读 2019-05-24 16:18:36
    这个天气预报采集是从中国天气网提取广东省内主要城市的天气并回显。本来是打算采集腾讯天气的,但是貌似它的数据是用js写上去还是什么的,得到的html文本中不包含数据,所以就算了。 爬虫简单说来包括两个步骤:...
  • wxpy.Bot(cache_path=True) 编译报错: C:\Users\pc\.virtualenvs\wxpy\Scripts\python.exe C:/Users/pc/PycharmProjects/wxpy/main.py Traceback (most recent call last): File "C:/Users/pc/PycharmProjects/wxpy...
  • Python 天气预报+微信

    2018-06-13 23:09:00
    """ Description: 需要提供以下三个信息,在申请到的微信企业号当中可以找到 ...Record: v1 1 先爬取当前天气 调用微信企业号进行发送 v2 : import urllib headers = {'User-Agent':'Mozilla/5...
  • 近来公司大屏幕的天气接口老是出问题,之前用的是webservice的http://www.webxml.com.cn/WebServices/WeatherWebService.asmx这个接口,坑的是每个月的25号该服务暂停...类似国家气象局提供的天气预报接口http://www...
  • Python如何读取天气预报?import urllib2import json# 101180101url = 'http://m.weather.com.cn/data/101180101.html're = urllib2.urlopen(url).read()re = re.decode('UTF-8')we = json.loads(re)['weatherinfo...
  • Python代码抓取获取天气预报信息源码讲解。这是一个用Python编写抓取天气预报的代码示例,用python写天气查询软件程序很简单。这段代码可以获取当地的天气和、任意城市的天气预报,原理是根据url找到网站截取相应的...
  • #!/usr/local/bin/python3#coding=utf-8'''Created on 2011-2-25@author: http://www.cnblogs.com/txw1958/'''#http://www.weather.com.cn/data/sk/101010100.html 实时#...
  • Python查询天气预报

    2015-09-29 11:52:07
    Python天气预报 目录(?)[+] 一. 实现过程 1.1 查询外网IP 通过这个网址查询到外网IP http://ip.dnsexit.com/index.php 1.2 查询IP所在省份和城市 通过这个地址查询到IP所在省
  • Python编写一个天气预报查询系统学了Python这么久 可以用它来做许多好玩的小程序哦! 这里给 大家做了个查询天气预报的小程序! 可以查询未来几天的天气! 需要大家自己修改下代码即可!首先我们需要建立一个字典dict ...
  • 【实例截图】【核心代码】from tkinter import *import tkinter as tkimport requestsfrom PIL import ImageTk as itkclass MyFrame(Frame):def __init__(self):self.root=Tk()self.root.title("天气查询")self.root...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,659
精华内容 2,263
关键字:

python天气预报

python 订阅