雖然咱們天天都會查看天氣,可是若是你可以用限制微信天天早上七點定時爲TA推送天氣預報,生活指數。直接爲TA提供過濾好的天氣信息,讓TA一目瞭然。並且操做簡單上手,任何人均可以零基礎搭建,爲你的TA帶來一絲小驚喜。html
小夥伴若是是 window 電腦能夠直接在 Python官網 選擇 **download **直接下載前端
直接點擊下載好的exe文件進行安裝,記得將環境變量配置選項勾選上。以下圖:python
安裝完成以後,咱們能夠新建文件夾,從git 上將代碼clone 下來。咱們直接在文件夾中摁住 shift + 鼠標右鍵 喚出 powerShell 查看 Python 版本。git
若是你們還有不明白的能夠參考 Python安裝教程github
可經過 pip install 直接安裝相關模塊,如運行時還有因模塊報錯,也能夠直接pip install 模塊名直接安裝便可。本項目以及後續相關都依賴於如下模塊。web
#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 模塊是本項目以及後續項目中很重要的模塊,就是由於這個開源項目,咱們才能使其與微信產生交互。json
控制路由器、智能家居等具備開放接口的玩意兒
運行腳本時自動把日誌發送到你的微信
加羣主爲好友,自動拉進羣中
跨號或跨羣轉發消息
自動陪人聊天
逗人玩
...
複製代碼
項目介紹以及安裝方法,你們能夠去主頁想看wxpyapi
參考 登陸文檔瀏覽器
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】 自動經過拉你入羣體驗機器人其餘功能。
歡迎小夥伴關注個人微信 【小夭同窗】 一塊兒學習前端相關知識。