雖然咱們天天都會查看天氣,可是若是你可以用限制微信天天早上七點定時爲TA推送天氣預報,生活指數。直接爲TA提供過濾好的天氣信息,讓TA一目瞭然。並且操做簡單上手,任何人均可以零基礎搭建,爲你的TA帶來一絲小驚喜。html
小夥伴若是是 window 電腦能夠直接在 Python官網 選擇 download 直接下載前端
直接點擊下載好的exe文件進行安裝,記得將環境變量配置選項勾選上。以下圖:python
安裝完成以後,咱們能夠新建文件夾,從git 上將代碼clone 下來。咱們直接在文件夾中摁住 shift + 鼠標右鍵 喚出 powerShell 查看 Python 版本。git
若是你們還有不明白的能夠參考 Python安裝教程github
可經過 pip install 直接安裝相關模塊,如運行時還有因模塊報錯,也能夠直接pip install 模塊名直接安裝便可。本項目以及後續相關都依賴於如下模塊。
#coding=utf8 import requests from urllib.request import urlopen from bs4 import BeautifulSoup from urllib.parse import urlencode from threading import Timer import re from wxpy import * import schedule import time import http import json import datetime import random
重要: 其中 wxpy 模塊是本項目以及後續項目中很重要的模塊,就是由於這個開源項目,咱們才能使其與微信產生交互。web
控制路由器、智能家居等具備開放接口的玩意兒 運行腳本時自動把日誌發送到你的微信 加羣主爲好友,自動拉進羣中 跨號或跨羣轉發消息 自動陪人聊天 逗人玩 ...
項目介紹以及安裝方法,你們能夠去主頁想看wxpyjson
參考 登陸文檔api
bot = Bot(cache_path=True,console_qr = 1) // 初始化機器人,掃碼登陸 console_qr 是用於登陸的二維碼展現默認爲1 bot.enable_puid('wxpy_puid.pkl') // 機器人啓用 puid 屬性,並指定 puid 所需的映射數據保存/載入路徑
def api(url): header = { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.8', 'Connection': 'keep-alive', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.235' } timeout = random.choice(range(80, 180)) data = requests.get(url, headers=header, timeout=timeout) return data.json()
header 中用來設置模擬請求接口的瀏覽器相關參數防止api 覺得咱們是爬蟲抓取。並設定隨機請求時間。瀏覽器
def sendweather(city, xx): url = 'https://free-api.heweather.com/s6/weather/forecast?location='+city+'&key=和風key' PMurl = 'https://free-api.heweather.com/s6/air/now?parameters&location='+city+'&key=和風key' lifeurl = 'https://free-api.heweather.com/s6/weather/lifestyle?location='+city+'&key=和風key' temp = api(url) temp = temp['HeWeather6'][0] update = temp['update'] now = temp['daily_forecast'][0] nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') pm = api(PMurl) pm = pm['HeWeather6'][0] airnow = pm['air_now_city'] life = api(lifeurl) life = life['HeWeather6'][0] life = life['lifestyle'] result = xx + city +' ---' + '\n'+ '\n'\ + ' 今每天氣:'+ now['cond_txt_d'] + ' 轉 ' + now['cond_txt_n'] + '\n'\ + ' 今天溫度:'+ now['tmp_min'] + '°C ~ ' + now['tmp_max'] + '°C' + '\n'\ + ' 風向:'+ now['wind_dir'] + ' ' + now['wind_sc'] + '級 '+ now['wind_spd'] + '千米/小時'+ '\n'\ + ' 相對溼度:'+ now['hum'] + '%' + '\n'\ + ' 降水量:'+ now['pcpn'] + 'ml' + ',降水機率:'+ now['pop'] + '%' + '\n'\ + ' 能見度:'+ now['vis'] + '千米' + '\n'\ + '------------------------------------------' + '\n'\ + '今天空氣質量:'+'\n'\ + ' 空氣質量指數:'+ airnow['aqi']+'\n'\ + ' 主要污染物:'+ airnow['main']+'\n'\ + ' 空氣質量:'+ airnow['qlty']+'\n'\ + ' 二氧化氮指數:'+ airnow['no2']+'\n'\ + ' 二氧化硫指數:'+ airnow['so2']+'\n'\ + ' 一氧化碳指數:'+ airnow['co']+'\n'\ + ' pm10指數:'+ airnow['pm10']+'\n'\ + ' pm25指數:'+ airnow['pm25']+'\n'\ + ' 臭氧指數:'+ airnow['o3'] +'\n'\ + '------------------------------------------' + '\n'\ + '一、'+ life[0]['txt']+'\n\n'\ + '二、'+ life[1]['txt']+'\n\n'\ + '三、'+ life[2]['txt']+'\n\n'\ + '😄😊😉😍😘😚😜😝😳😁'+'\n\n'\ result = result + '發送時間:' + nowTime + '\n' return result
小夥伴能夠在和風官網註冊帳戶,其中有免費的天氣、生活指數api可使用。免費的已經能夠知足咱們的需求。微信
def auto_send(msg): weather = sendweather('蘇州', msg) // 用來請求剛剛封裝的請求天氣 Lie = bot.friends().search(u'Lie')[0] // 查找你要發送的對象,必須在你的好友列表裏也能夠爲羣 後面是好友的暱稱,記得不是備註名哦! WxpyChat = bot.groups().search('🍋 (๑• . •๑) ') // 獲取要發送的羣 Lie.send(weather) // 發送 WxpyChat.send(weather) // 能夠設置多個發送對象
schedule.every().day.at("13:56").do(auto_send, '早上好,') schedule.every().day.at("13:57").do(auto_send, '晚上好,')
while True: schedule.run_pending() time.sleep(1)
咱們還能夠爲其添加主動詢問操做,好比發送城市,直接得到當前城市的天氣,只須要在第6步添加以下代碼便可。
Lie = bot.friends().search(u'Lie') @bot.register(Lie) // 註冊對哪一個好友的回覆生效 def auto_reply_all(msg): if '蘇州' in msg.text: nowWeather = sendweather(msg.text, msg) msg.sender.send(nowWeather)
本項目的代碼以上傳個人github,若有須要你們能夠clone下載
用python + wxpy 爲TA定製貼心喝水小助理。
小夭同窗,頁面切圖仔。
想體驗機器人的小夥伴能夠加下面二維碼,驗證信息 【py】 自動經過拉你入羣體驗機器人其餘功能。
歡迎小夥伴關注個人微信 【小夭同窗】 一塊兒學習前端相關知識。