python能做什么有趣的东西-Python 里itchat 模块能实现什么有趣的东西?

持续更新中,文中有代码、有效果图

写了四个脚本,其中第一个是全网独一份的,能借用微软AI测颜值api的聊天机器人(最新动态,现在已经可以用本地机器学习的模型来测试颜值了,利用华南理工开放的五百张中国人脸来学习,原理是tensorflow做的cnn分类,没有做回归,只能整数打分,我看看啥时候能放出来),第二个是统计微信好友信息并生成xls文件发给自己的工具,第三个是用微信好友签名信息生成词云的工具(可以设置词云形成的图案),第四个是生成全国微信好友分布地图

项目代码部分已经放上,欢迎知友copy下载检验,除了都用到itchat库外,还要根据新功能另行pip install。

0、聊天机器人

可以根据信息,自动回复、发送种子文件、自动报时,另外还接入微软小冰的图片颜值检测接口,可以根据对方发来图片来回复评分消息,后台也能给文件助手发特定消息来引导逻辑,控制开关机器人。反正Python能干的都能接上。

最有趣也是最私人化的就是自动回复功能,曾经也尝试过拿图灵api来玩,最后发现这样的可玩性并不高,一是从此图灵服务器到我服务器肯定有延迟,二是图灵功能强大后需要充值,三是自己写逻辑也很好玩。

写自动回复,发现互动效果最好的不是关键词回复,而是表情包、某些无意义语气词等。这说明,评判机器和人互动的优良与否,取决于你能和他聊多久,而不是准确性,假如你能和一个妹子一直互动一辈子,那你们之间一定有特别的缘分。

效果图如下,这张显示了和妹子互动骗图的一部分。 />

其实我觉得她的颜值在7.5到8分左右。微软小冰接口代码后面会发,代码是全网独一份的。抓包解码是关键。

下面这两张是文字聊天的,效果显著,显然在此时此刻,他不知道屏幕后的我是个机器人 />

/>

将写好的脚本挂在阿里云一块钱一个月学生主机上,相比于挂在自己的主机上,稳定性更好,不容易掉线。

1、统计好友信息的工具。

扫码登录几秒内立即完成统计好友信息,包括昵称、性别、男女总数、签名然后做成xls发送到文件传输助手。拿了号来测试。 />

(6月1号第一次修改,加了上面的三张效果图,加了第一个项目的代码)

还真有人看代码,那我先放第二个代码,python2.7的,python3也能跑,统计微信好友信息生成excel,挺简单的。需要先pip下itchat和xlwt库。

# coding:utf-8

import itchat,time,sys,xlwt

file = xlwt.Workbook()

table = file.add_sheet('info',cell_overwrite_ok=True)

# 登录-持续

itchat.auto_login()

print(u"logged")# 获取好友列表

friends = itchat.get_friends(update=True)[0:]

male = female = other = 0

for i in friends[1:]:

sex = i["Sex"] if sex == 1:

male += 1

elif sex == 2:

female += 1

else:

other += 1

total = len(friends[1:])

table.write(0,5,u'【made by junzi】')

table.write(0,7,u'【共'+str(len(friends)-1)+u'位朋友,'+str(male)+u'位男性朋友,'+str(female)+u'位女性朋友,另外'+str(other)+u'位不明性别】')

table.write(0,0,u' 【昵称】')

table.write(0,1,u' 【备注名】')

table.write(0,2,u' 【省份】')

table.write(0,3,u' 【城市】')

table.write(0,4,u' 【签名】')

a=0

for i in friends:

table.write(a+1,0,i['NickName'])

table.write(a+1,1,i['RemarkName'])

table.write(a+1,2,i['Province'])

table.write(a+1,3,i['City'])

table.write(a+1,4,i['Signature'])

if i['RemarkName'] == u'':

table.write(a+1,1,u'[ ]')

if i['Province'] == u'':

table.write(a+1,2,u'[ ]')

if i['City'] == u'':

table.write(a+1,3,u'[ ]')

if i['Signature'] == u'':

table.write(a+1,4,u'[ ]')

a=a+1

print(a)

# qm=raw_input("file name >>>:")aaa='weixin_'+time.strftime("%Y%m%d", time.localtime())+'.xls'file.save(aaa)

itchat.send('made by junzi','filehelper')

itchat.send('@%s@%s' % ('fil',aaa), 'filehelper')

print ("over")

代码很简单,扫码之后几秒内完成然后发送一个xls文档到文件传输助手。测了一下python3的处理速度比python2速度快好几倍。使用完就可以退出网页版登录啦~

百度开源的echart,可以把微信好友分布地区在地图上可视化,最后导出的是html文件,html也可以保存png图片文件 />

(9月25日第二次修改,好久没上知乎了,把两个项目的顺序改了,也应众位网友要求把小冰代码放上来了。另外提个建议,检测关键字自动回复最好弄个字典啥的,数据放在excel里读取别放在py文件里,这样后期维护很方便)

import itchat,random,codecs,requests

import json

from itchat.content import *

from json import JSONDecoder

#微软小冰

xiaobing_url="http://kan.msxiaobing.com/Api/ImageAnalyze/Process?service=yanzhi"

@itchat.msg_register(PICTURE)

def picture_reply(msg):

msg['Text'](msg['FileName'])

print msg['FileName']

header = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36',

'Referer': 'http://kan.msxiaobing.com/V3/Portal',

}

url1 = 'http://kan.msxiaobing.com/Api/Image/UploadBase64'

url2 = 'https://kan.msxiaobing.com/Api/ImageAnalyze/Process'

s = requests.Session()

with open(msg['FileName'], 'rb') as f:

image_data = f.read().encode('base64')

r = s.post(url1, data=image_data, headers=header)

imgurl='https://mediaplatform.msxiaobing.com' + r.json()['Url']

#print imgurl,"0"

#print r.text,"1"

sys_time = int(time.time())

payload = {'service': 'yanzhi',

'tid': '7531216b61b14d208496ee52bca9a9a8'}

headerss={

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',

'Cookie':'_ga=GA1.2.1597838376.1504599720; _gid=GA1.2.1466467655.1504599720; ai_user=sp1jt|2017-09-05T10:53:04.090Z; cpid=YDLcMF5LPDFfSlQyfUkvMs9IbjQZMiQ2XTJHMVswUTFPAA; salt=EAA803807C2E9ECD7D786D3FA9516786; ARRAffinity=3dc0ec2b3434a920266e7d4652ca9f67c3f662b5a675f83cf7467278ef043663; ai_session=sQna0|1504664570638.64|1504664570638'+str(random.randint(11, 999)),

'Referer': 'https://kan.msxiaobing.com/ImageGame/Portal?task=yanzhi&feid=d89e6ce730dab7a2410c6dad803b5986'

}

form = {

'MsgId': str(sys_time) + '733',

'CreateTime': sys_time,

'content[imageUrl]':imgurl

}

r = requests.post(url2,params=payload, data=form,headers=headerss)

print(r.json())

text1=r.json()['content']['text']

print(text1)

return text1

itchat.run()

代码中我删了私人的聊天回复部分等等,见谅。

关注@上官带瓜 ,不错过我的每一个答案

点个赞让我在知道你看到了最后

诸君有新情况随时评论或私信我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值