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()
代码中我删了私人的聊天回复部分等等,见谅。
关注@上官带瓜 ,不错过我的每一个答案
点个赞让我在知道你看到了最后
诸君有新情况随时评论或私信我
python可以做什么有趣的东西-Python 里itchat 模块能实现什么有趣的东西?相关推荐
- python可以干什么-Python可以用来做什么 为你揭开python神秘面纱
Python可以用来做什么 为你揭开python神秘面纱 时间:2018-01-24 来源:解读Python 最近,编程界又一语言可谓是着实又火了一把,什么语言呢?python,python为 ...
- python可以给你干什么-Python可以用来做什么 为你揭开python神秘面纱
Python可以用来做什么 为你揭开python神秘面纱 时间:2018-01-24 来源:解读Python 最近,编程界又一语言可谓是着实又火了一把,什么语言呢?python,python为 ...
- (地理国情监测)arcgis使用python,做arctoolbox,渔网裁剪gdb里的要素,四等分
(地理国情监测)arcgis使用python,做arctoolbox,渔网裁剪gdb里的要素,四等分: # ecoding=gbk coding = 'utf-8' import os import ...
- python能做什么项目-这十个Python实战项目,让你瞬间读懂Python!
前言 Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Pytho ...
- 学python可以做什么产品-学了 Python,能用来做什么?实际应用场景有哪些??...
无论是工作还是生活,Python都是一项实用而有趣的技能. Python具有广泛的应用程序,可以总结下图. 适用于工作:Python开发,Python搜寻器,大数据: 在生活中,爬行动物为生活增添了很 ...
- python能做什么程序-学了 Python,能用来做什么?实际应用场景有哪些??
无论是工作还是生活,Python都是一项实用而有趣的技能. Python具有广泛的应用程序,可以总结下图. 适用于工作:Python开发,Python搜寻器,大数据: 在生活中,爬行动物为生活增添了很 ...
- 学python能做什么类型的工作-python是什么?python可以用来干什么?
Python最近几年发展的非常迅速,尤其是2017年,随着人工智能概念的兴起,python的关注度也是越来越高,python相继纳入浙江省高考和山东省的小学教材.对于从事IT行业的人来说,对pytho ...
- python能做什么-普通小白学会Python到底具体能做什么呢?
Python的应用非常广泛,无论是工作还是生活,Python都是一个既实用又有趣的技能. 刨掉我们常说的Python主要应用领域:Web前端开发,云计算,人工智能,系统运维等等,这些是需要深度学习的. ...
- python能做什么工作-学了Python可以做什么工作
学了Python可以做什么工作 用 Python 写爬虫 据我所知很多初学 Python 的人都是使用它编写爬虫程序.小到抓取一个小黄图网站,大到一个互联网公司的商业应用.通过 Python 入门爬虫 ...
最新文章
- Nginx + CGI/FastCGI + C/Cpp
- 机房工程施工细节标准做法,每张图都有说明
- 火爆 GitHub 的 16 张机器学习速查表,值得收藏!
- Win docker 桌面版报错error during connect: This error may indicate that the docker daemon is not running
- 信用卡的3种分期模式全面比较
- Strange Partition CodeForces - 1471A
- 动态规划(四)--最长公共子序列
- 洛谷 P2010 回文日期
- HTML 表格表单代码实例(个人简介表)
- 最长公共子串计算C++
- DevOps ACA 软件代码与质量管理(六)
- 阿里腾讯裁员、最高30%?计算机行业前景到底如何...
- windows7 32位系统下好用的一款视频制作工具--Windows live影音制作
- MongoDB的安装与可视化工具Studio 3T的安装
- 在linux后台运行脚本的方法和命令
- python bokeh教程_交互式数据可视化在Python中用Bokeh实现
- impala查询报错问题 EOFException: Cannot seek after EOF 求解
- 1月10日前未完成《创业创新执行力》考试的补救措施
- WebGIS教学——瓦片行列号换算
- php实现微信登录功能
热门文章
- python随机抽号_随手小代码——Python 从集合中随机抽取元素
- 开发日记-20190824 关键词 读书笔记《掌控习惯》DAY 3
- sklearn的train_test_split,果然很好用啊!
- syslog介绍-CS架构来采集系统日志
- Scala学习 -- 基础语法
- linux系统格式化磁盘
- Codeforces #528 Div2 F (1087F) Rock-Paper-Scissors Champion 树状数组+set
- 关于BitmapImage EndInit()时报值不在范围内的异常
- Linux Shell编程入门(zz)
- ASP:当 request.cookies 发生 Microsoft VBScript 运行时错误 (0x800A000D) 类型不匹配: '[string:...