前两天在微信公众号(Python中文社区)上了解到一个很有趣的Python的“玩法”
就是通过itchat库来实现微信的一些基本操作
首先,我们要安装itchat库
pip install itchat
然后我们就可以利用三行简单的代码来实现网页的微信登录
import itchat #首先得导入包。。。
itchat.auto_login() #这里可以将属性设置hotReload=True即‘热启动’
#itchat.auto_login(hotReload=True)是可以将你扫描二维码登录后的状态保存为一个itchat.pkl文件,这样可以让你下次运行时不再扫描二维码即可登录(网上看到有人说是十分钟左右,我也没做验证,所以不太清楚)。
itchat.run() # 运行并保持在线状态
登录成功后就是这样了
然后我们就可以进行一些有趣的操作啦
你想知道你的微信好友是男的多还是女的多吗?
首先我们要将你的好友的性别读取并暂时保存下来,
import itchat
if __name__ == '__main__':
itchat.auto_login(hotReload=True)
#读取朋友的信息,update为更新
friends=itchat.get_friends(update=True)[0:]
male=female=other=0
#这里从friend[1]开始,因为friend[0]是你自己的信息
for i in friends[1:]:
#只需要读取好友的sex即可,当然你还可以读取其他的内容进行分析
sex=i["Sex"]
if sex==1:
male+=1
elif sex==2:
female+=1
else:
other+=1
total=len(friends)
print("男性好友:%.2f%%"%(float(male)/total*100)+"\n"
+"女性朋友: %.2f%%"%(float(female)/total*100)+"\n"+
"不明性别好友:%.2f%%"%(float(other)/total*100))
#需要利用到一点爬虫的知识
#emmm```我在网上找了一小段代码
def get_news():
"""获取金山词霸的每日一句,中文和英文"""
url = "http://open.iciba.com/dsapi/" #这是地址
r = requests.get(url) #发送请求
content = r.json()['content']
note = r.json()['note']
return content, note
将抓取下来的文字转换为语音
需要用到百度的语音API接口,教程很多,只需要注册一个账号即可。
def Voice(message):
message = message
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
print('语音提醒:', message) #输出字符串主要是为了看抓取到的内容。
#百度语音合成
#可查看百度的技术文档[python技术文档](https://ai.baidu.com/docs#/TTS-Online-Python-SDK/top)
result = client.synthesis(message, 'zh', 1, {'vol': 5}) #
if not isinstance(result, dict):
with open('sound.mp3', 'wb') as f:
f.write(result)
f.close()
#完整代码
from __future__ import unicode_literals
import itchat
from aip import AipSpeech
from wxpy import *
import requests
def get_news()
url = "http://open.iciba.com/dsapi/"
r = requests.get(url)
content = r.json()['content']
note = r.json()['note']
return content, note
def Voice_broadcast(message):
message = message
APP_ID = '14865118'
API_KEY = 'lWvOaGZY7lW8Kd6s6I3IVGvP'
SECRET_KEY = 'v566mLWh6bq69vVK9DEfsXDVqE9o06QO'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
print('语音提醒:', message)
#百度语音合成
result = client.synthesis(message, 'zh', 1, {'vol': 5})
if not isinstance(result, dict):
with open('sound.mp3', 'wb') as f:
f.write(result)
f.close()
#playsound模块播放语音
@itchat.msg_register([PICTURE,TEXT])
def simple_reply(msg):
content, note = get_news()
voice = note + content
Voice_broadcast(voice)
itchat.send(voice,msg['FromUserName'])
try:
itchat.send_file("sound.mp3",msg['FromUserName'])
print("success")
except:
print("fail")
if __name__ == "__main__":
itchat.auto_login(hotReload=True)
friends_list = itchat.get_friends(update=True)
itchat.run()