Python + Wxpy 搭建簡單微信機器人

因為之前想過 如果每天早上微信能夠發(fā)送天氣預報給我寿桨,給我老婆多好罗晕,然后就動手看網(wǎng)上的教程做了一個可以定時發(fā)送天氣預報的程序仔掸,

最近又想到折騰羡亩,做了一個更加詳細的版本危融。但是需要主動操作

具體操作看圖吉殃。


4bf724fa5a27670491cee4fd3b7977c.png

d3d3306aa96844c06a4dd991a398e2b.png

b0d0d26535ef1647a74fb0ec5853b5b.png

部分代碼:

#coding=utf8
import requests
from requests import exceptions
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

bot = Bot(cache_path=True,console_qr = 1)
myself = bot.self
bot.enable_puid('wxpy_puid.pkl')
tuling = Tuling(api_key='換成自己的圖片key')
group = bot.groups().search(u'Test')
shgroup = bot.groups().search('伐木累??')
friends = bot.friends().search(u'Lie')
msgText = "Helo!  回復'功能'獲取對應功能\n1.天氣(例:蘇州天氣)\n2.今日nba(注:今日所有比賽結(jié)果)\n3.今日黃歷\n4.每日一句\n5.開啟機器人(關(guān)閉機器人)\n6.今日古詩詞\n7.每日閱讀\n8.歷史上的今天\n9.nba排名(注:當日東西部排名)\n10.新聞\n          1.頭條新聞\n          2.社會新聞\n          3.娛樂新聞\n          4.體育新聞\n11.星座運勢(例如:天秤座)"  #任意回復獲取的菜單
newText = "你可以這樣回復: \n1.頭條新聞\n2.社會新聞\n3.娛樂新聞\n4.體育新聞"

def get_now_weather(city):
    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'
    }
    url = 'https://free-api.heweather.com/s6/weather/now?location='+city+'&key=換成自己的聚合數(shù)據(jù)key'
    PMurl = 'https://free-api.heweather.com/s6/air/now?parameters&location='+city+'&key=換成自己的和風key'
    # 設(shè)定超時時間巧娱,防止被網(wǎng)站認為是爬蟲
    timeout = random.choice(range(80, 180))
    rep = requests.get(url, headers=header, timeout=timeout)
    pm = requests.get(PMurl, headers=header, timeout=timeout)
    result = ''
    temp = rep.json()
    temp = temp['HeWeather6'][0]
    update = temp['update']
    now = temp['now']
    nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    pm = pm.json()
    pm = pm['HeWeather6'][0]
    print(now)
    airnow = pm['air_now_city']
    result = city +  '實時天氣預報-' + '\n'\
    + '更新時間:'+ update['loc'] + '\n'\
    + '          當前天氣:'+ now['cond_txt'] + '\n'\
    + '          當前溫度:'+ now['tmp'] + '°C' + '\n'\
    + '          體感溫度:'+ now['fl'] + '°C' + '\n'\
    + '          風向:'+ now['wind_dir'] + ' ' + now['wind_sc'] + '級 '+ now['wind_spd'] + '公里/小時'+ '\n'\
    + '          相對濕度:'+ now['hum'] + '%' + '\n'\
    + '          降水量:'+ now['pcpn'] + 'ml' + '\n'\
    + '          能見度:'+ now['vis'] + '公里' + '\n'\
    + '          云量:'+ now['cloud']  + '\n'\
    + '-----------------------------------' + '\n'\
    + '當前空氣質(zhì)量:'+'\n'\
    + '          空氣質(zhì)量指數(shù):'+ airnow['aqi']+'\n'\
    + '          主要污染物:'+ airnow['main']+'\n'\
    + '          空氣質(zhì)量:'+ airnow['qlty']+'\n'\
    + '          二氧化氮指數(shù):'+ airnow['no2']+'\n'\
    + '          二氧化硫指數(shù):'+ airnow['so2']+'\n'\
    + '          一氧化碳指數(shù):'+ airnow['co']+'\n'\
    + '          pm10指數(shù):'+ airnow['pm10']+'\n'\
    + '          pm25指數(shù):'+ airnow['pm25']+'\n'\
    + '          臭氧指數(shù):'+ airnow['o3']+'\n'

    result =  result + '發(fā)送時間:' +  nowTime + '\n'

    return result

def get_news(type):
    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'
    }
    url = 'http://v.juhe.cn/toutiao/index?type='+str(type)+'&key=換成自己的聚合數(shù)據(jù)key'
    timeout = random.choice(range(80, 180))
    rep = requests.get(url, headers=header, timeout=timeout)
    data = json.loads(rep.text)
    data = data['result']
    data = data['data']
    item = []
    obj = {}
    html = '今日'+str(type)+'新聞:'+ '\n'
    for i in data:
        html = html + '標題:' + i['title'] + '\n'\
                + '鏈接:' + i['url'] + '\n'\
                + '分類:' + i['category'] + '\n'\
                + '來自:' + i['author_name'] + '\n'\
                + '時間:' + i['date'] + '\n'\
                + '-----------------------------------------------' + '\n' +'\n' \

    return html

def get_star(name):
    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'
    }
    url = 'http://web.juhe.cn:8080/constellation/getAll?consName='+str(name)+'&type=today&key=換成自己的聚合數(shù)據(jù)key'
    timeout = random.choice(range(80, 180))
    rep = requests.get(url, headers=header, timeout=timeout)
    data = json.loads(rep.text)
    starhtml = '今日'+str(name)+'運勢:'+ '\n'\
        + '          綜合指數(shù):' + data['all'] + '\n'\
        + '          幸運色:' + data['color'] + '\n'\
        + '          健康指數(shù):' + data['health'] + '\n'\
        + '          愛情指數(shù):' + data['love'] + '\n'\
        + '          財運指數(shù):' + data['money'] + '\n'\
        + '          速配星座:' + data['QFriend'] + '\n'\
        + '          工作指數(shù):' + data['work'] + '\n'\
        + '          今日概述:' + data['summary'] + '\n'\

    return starhtml

def get_nba():
    resp = urlopen('https://m.hupu.com/nba/game')
    soup = BeautifulSoup(resp,'html.parser')
    tagToday = soup.find('section',class_="match-today")
    nbaHtml = '今日NBA比賽結(jié)果:' + '\n' + '\n'
    for tag in tagToday.find_all('a', class_='match-wrap'): 
        nbaHtml = nbaHtml + tag.find('div', class_='away-team').span.get_text() + '    ' + tag.find('strong', class_='').span.get_text() + '    ' + tag.find('div', class_='home-team').span.get_text() + '  (' + tag.find('div', class_='match-status-txt').get_text() +')' + '\n'

    return nbaHtml  

def get_rank():
    resp = urlopen('https://m.hupu.com/nba/stats')
    soup = BeautifulSoup(resp,'html.parser')
    east = soup.find_all('li',class_= "weast")[0]
    west = soup.find_all('li',class_= "weast")[1]
    rankHtml = '今日NBA東部排名:(1.排名  2.球隊  3.勝負  4.勝負差  5.最近情況)' + '\n' + '\n'
    for tag in east.find_all('li', class_=''): 
        list = tag.find('p', class_='right-data')
        rankHtml = rankHtml + tag.find('span', class_='rank').get_text() + '. ' + tag.find('div', class_='').h1.get_text() + '    ' + list.find_all('span')[0].get_text() + '    ' + list.find_all('span')[1].get_text() +'    '+ list.find_all('span')[2].get_text() +'\n'

    rankHtml = rankHtml + '\n' + '\n' + '---------------------------------------------' + '\n' + '\n'
    rankHtml = rankHtml + '今日NBA西部排名:(1.排名  2.球隊  3.勝負  4.勝負差  5.最近情況)' + '\n' + '\n'        
    for tag in west.find_all('li', class_=''): 
        list = tag.find('p', class_='right-data')
        rankHtml = rankHtml + tag.find('span', class_='rank').get_text() + '. ' + tag.find('div', class_='').h1.get_text() + '    ' + list.find_all('span')[0].get_text() + '    ' + list.find_all('span')[1].get_text() +'    '+ list.find_all('span')[2].get_text() +'\n'
    
    return rankHtml   

def invite(user):
    print('4')
    group =  bot.groups().search('cc')
    group[0].add_members(user, use_invitation=True)


@bot.register(msg_types=FRIENDS)
@bot.register(group)
@bot.register(shgroup,TEXT)
@bot.register(friends)

喜歡的可以加微信 wex_5201314 驗證信息【 py】 拉你進群體驗 獲取關(guān)注公眾號 【故事膠片】 獲取源碼

或者直接掃描二維碼

WeChat Image_20181221112044.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末永罚,一起剝皮案震驚了整個濱河市官扣,隨后出現(xiàn)的幾起案子蚯涮,更是在濱河造成了極大的恐慌,老刑警劉巖棒旗,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逛拱,死亡現(xiàn)場離奇詭異,居然都是意外死亡曹步,警方通過查閱死者的電腦和手機衍腥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門尚骄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來状蜗,“玉大人,你說我怎么就攤上這事∩有海” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵埋哟,是天一觀的道長定欧。 經(jīng)常有香客問我渔呵,道長爷辱,這世上最難降的妖魔是什么弟断? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任刘急,我火速辦了婚禮,結(jié)果婚禮上浸踩,老公的妹妹穿的比我還像新娘叔汁。我一直安慰自己码邻,他們只是感情好,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布另假。 她就那樣靜靜地躺著冒滩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浪谴。 梳的紋絲不亂的頭發(fā)上开睡,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音苟耻,去河邊找鬼篇恒。 笑死,一個胖子當著我的面吹牛凶杖,可吹牛的內(nèi)容都是我干的畔柔。 我是一名探鬼主播蔑穴,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了潘飘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤矢门,失蹤者是張志新(化名)和其女友劉穎费变,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體漆撞,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡殴泰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了浮驳。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悍汛。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖至会,靈堂內(nèi)的尸體忽然破棺而出离咐,到底是詐尸還是另有隱情,我是刑警寧澤奉件,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布宵蛀,位于F島的核電站,受9級特大地震影響瓶蚂,放射性物質(zhì)發(fā)生泄漏糖埋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一窃这、第九天 我趴在偏房一處隱蔽的房頂上張望瞳别。 院中可真熱鬧征候,春花似錦、人聲如沸祟敛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽馆铁。三九已至跑揉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間埠巨,已是汗流浹背历谍。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辣垒,地道東北人望侈。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像勋桶,于是被迫代替她去往敵國和親脱衙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 專業(yè)考題類型管理運行工作負責人一般作業(yè)考題內(nèi)容選項A選項B選項C選項D選項E選項F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 8,992評論 0 13
  • 微信服務(wù)號開發(fā) 整體流程 域名報備例驹,服務(wù)器搭建 Python開發(fā)環(huán)境和項目的初始化搭建捐韩; 微信公眾號注冊及開發(fā)模式...
    飛行員suke閱讀 4,510評論 0 14
  • 導 語 張曉曦:“沒有荤胁,準備離婚了。所以啊仪召,人結(jié)婚的時候一定要謹慎寨蹋。離婚起來,才沒那么麻煩扔茅。”不對秸苗,我怎么聽出了話...
    飄雨桐V閱讀 251評論 0 2
  • 正則 正則表達式召娜,又稱規(guī)則表達式。(英語:Regular Expression惊楼,在代碼中常簡寫為regex玖瘸、reg...
    帥豬佩奇閱讀 471評論 0 0
  • 回家看看那你們
    史迪仔與布袋熊閱讀 494評論 0 0