【干货】教你用python给你的微信朋友群发私人订制的藏头诗
(图片来源于互联网:http://img.xiazaizhijia.com/uploads/2018/0123/20180123093158149.jpg)
具体想实现的事情是:向微信朋友列表中的朋友群发为每个人私人订制的藏头诗。 比如你是萧平旌,朋友列表里的有两个好友,分别备注为林奚和萧平章,
那么这两人个人收到的藏头诗首字分别为:
平旌祝林奚新年快乐
平旌祝平章新年快乐
step1.安装python3.6
推荐使用最新的anaconda安装. 随后在anaconda prompt中使用pip install itchat
安装itchat
step2. 藏头诗api
之前花了些时间研究如何使用python写诗,较新的办法是使用tensorflow学习成千上万首古诗,然后自行写诗(类似的也可以写周杰伦/方文山 中国风的歌词),虽然有现成的代码,可是不懂tensorflow,调试起来也很麻烦,tensorflow还得从头学下,太浪费时间,居然发现了一个免费的藏头诗api, 超级好用,可以选择哪句押韵,五言还是七言,藏的字在句中的位置等,比自己训练的结果靠谱多了。
def gen_poetry(key='这是测试',p_len='7',p_type='1',p_rythm='2'):
"""
输入皆为str
p_len=5 五言
p_len=7 七言
p_type=1 藏头
p_type=2 藏尾
p_type=3 藏中
p_type=4 递增
p_type=5 递减
p_rythm=1 双句一压
p_rythm=2 双句押韵
p_rythm=3 一三四押
"""
from urllib import request, parse
import json
showapi_appid="**********"
showapi_sign="**************************"
url="http://route.showapi.com/950-1"
send_data = parse.urlencode([('showapi_appid', showapi_appid),
('showapi_sign', showapi_sign)
,('num', p_len)
,('type',p_type)
,('yayuntype', p_rythm)
,('key', key)
])
req = request.Request(url)
try:
response = request.urlopen(req, data=send_data.encode('utf-8'),
timeout = 10) # 10秒超时反馈
except Exception as e:
print(e)
result = response.read().decode('utf-8')
result_json = json.loads(result)
res_body=result_json['showapi_res_body']
poetry_txt=res_body['list']
return poetry_txt
这个函数主要来源于showapi的示例,需要自行上showapi网站注册,免费获取藏头诗的showapiappid和showapisign。另外这个showapi的网站有很多好玩的api可以尝试。函数会返回一个list,存放6个句子(如下),可以随机选取或者只选取某一句。
gen_poetry("萧平旌")
Out[2]:
['萧关扫定犬羊群,平旦敲门门未开。旌旗不断春风前,',
'萧寥天清而灭云,平地寸步扃云岩。旌封香火几千年,',
'萧画枝活叶叶动,平川不见龙行雨。旌旆逶迤碣石间,',
'萧艾转肥兰蕙瘦,平地能开洞穴幽。旌封香火几千年,',
'萧何人杰足封侯,平碧浅春生绿塘。旌旆红尘已出城,',
'萧何身后散图书,平持旄节步空虚。旌封香火几千年,']
step3.安装itchat
itchat的原理大概是抓取微信网页版的的数据包,获得微信的请求数据,进而获得微信朋友的基本信息,如好友的头像、性别、所在地、个性签名、备注、昵称等。当然也可以发送和接受消息。这个module玩法很多,比如,可以做一些描述性统计,看下你的朋友的所在地分布,男的多还是女的多之类,或者是把朋友的个性签名做成一个词云,或者可以把所有好友的头像拼成一个大图,或者自己给自己安排一个聊天机器人~~这些内容都比较简单,可以百度教程和代码
在这里只需要用到最简单的两个功能,读取好友列表(好友备注名)和发送消息。 这里的问题会有:
好友需要备注正确,备注不对,发送的内容自然会有问题。
生僻字可能做不出诗句
诗句可能没什么特别的意义,看着一头雾水。 个人觉得祝福传达到就行了
微信网页版很小可能会被封几天【这个是比较囧】 因为如果使用python调用微信发消息,一秒钟可能发出上万条消息,也很容易被检测出来,所以用的时候要小心【目前想到的方法是在发送的时候使用time.sleep()的方法,尚未测试】。在自己小号上测试,还有用小号建立聊天机器人都没有被封过。自己在调试藏头诗祝福语的时候不小心用登陆了大号,结果好像是发了大概8+个朋友的信息,还好当时代码有个bug,不然要手动撤回100多条信息,可能是因为反复登录或信息发太快,网页版微信被封了几天。囧rz
itchat需要扫码登陆,目前python调用微信的基本都是这个module,不放心的就不要尝试了。
代码思路很简单:登陆微信,获取好友列表,获取id和备注名,使用备注名做藏头诗,对于备注名,两个字的名字用full name,三个字的名字使用given name,这样感觉更为亲切,少于2个字或者多于3个字的名字自行忽略。加上固定的内容,自己名字和新年祝福的藏头诗,发送。发送时自行加上时间间隔。
import itchat
import time
itchat.auto_login()
friends = itchat.get_friends(update=True)[0:]
for i in friends:
name=i['RemarkName'] #获取备注名
uname=i['UserName']
msg1='平碧浅春生绿塘\n旌旗不断春风前\n祝辞回谢递丹霄\n'
msg3='新歌一曲送祝福\n年年有余五谷丰\n快意人生精神爽\n乐享华年正从容\n'
if len(name)==2:
name_input=name
msg0='hey %s,平旌的新年祝福送上:\n'%name_input
msg2=gen_poetry(name_input)[3]
msg2=msg2.replace(',','\n')
msg2=msg2.replace('。','\n')
my_msg=msg0+msg1+msg2+msg3
itchat.send(my_msg, toUserName=uname)
#print(my_msg)
elif len(name)==3:
name_input=name[1:]
msg0='hey %s,平旌的新年祝福送上:\n'%name_input
msg2=gen_poetry(name_input)[3]
msg2=msg2.replace(',','\n')
msg2=msg2.replace('。','\n')
my_msg=msg0+msg1+msg2+msg3
itchat.send(my_msg, toUserName=uname)
#print(my_msg)
else:
continue
time.sleep(10)
运行两段代码,平旌只需要用微信扫一个二维码,他的微信好友【假设只有两个:林奚和萧平章】便会各自收一条私人订制的微信消息:
林奚会收到如下内容:
hey 林奚,平旌的新年祝福送上:
平碧浅春生绿塘
旌旗不断春风前
祝辞回谢递丹霄
林端忽见南山色
奚斯跃而董狐蹶
新歌一曲送祝福
年年有余五谷丰
快意人生精神爽
乐享华年正从容
萧平章会收到如下内容:
hey 平章,平旌的新年祝福送上:
平碧浅春生绿塘
旌旗不断春风前
祝辞回谢递丹霄
平地能开洞穴幽
章仇兼琼持上天
新歌一曲送祝福
年年有余五谷丰
快意人生精神爽
乐享华年正从容
最后的最后:
今天调试增加了部分内容,修改了一些bug。
生僻字无法生成藏头诗,所以含有生僻字的不生成藏头诗,直接发送祝福。
try:
msg2=gen_poetry(name_input)[3]
except:
msg2='\n'
msg2=msg2.replace(',','\n')
msg2=msg2.replace('。','\n')
if len(msg2)!=16:
msg2='\n'
my_msg=msg0+msg1+msg2+msg3
此外可使用
itchat.send(my_msg, toUserName='filehelper')
或者
print(my_msg) 进行调试
这次主题跟公众号主题不太一致。今天就是年三十了,本来是昨天群发的,结果现在才发现没发出去,估计下次可以用上。最后恭祝各位狗年吉祥:旺狗贺岁,欢乐祥瑞;旺狗汪汪,事业兴旺;旺狗打滚,财源滚滚;旺狗高跳,吉星高照;旺狗撒欢,如意平安;旺狗祈福,阖家幸福!
原创文章,转载请注明
您的关注和转发是我继续的动力,长按二维码识别关注。
【干货】教你用python给你的微信朋友群发私人订制的藏头诗相关推荐
- python中生成藏头诗
可以使用 Python 库 NLTK(Natural Language Toolkit)来生成藏头诗.具体实现方法如下: 安装 NLTK 库,在命令行中运行 pip install nltk. 引入库 ...
- Python PaddleNLP实现自动生成虎年藏头诗
这篇文章主要介绍了利用Python PaddleNLP实现自动生成虎年藏头诗功能,文中的示例代码讲解详细,感兴趣的同学可以跟随小编一起试一试.Python编程学习资料点击免费领取 目录 1.paddl ...
- Python爬虫爬取微信朋友圈的方法,感兴趣的朋友可以了解下
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 小雨 | 作者 python教程 | 来源 接下来,我们将实现微信朋友圈的 ...
- Python爬虫爬取微信朋友圈
更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.op-kg.com/ ...
- python藏头诗_Python简单实现表白藏头诗
Python简单实现表白藏头诗 导入数据 数据分行 存在很多空行 长度为24和16的行可能是正确的诗句(分别对应五言和七言) 部分长度正确的行,可能是目录行,标题等,需要仔细甄别 数据清洗 203 秦 ...
- python藏头诗_如何使用Python做一个藏头诗生成器?
藏头诗是可以利用Python做出来呃,具体是如何做的呃,下面随融跃小编一起了解一下! 爬取诗句 在百度搜索"我开头的诗句",可以进入到百度汉语的页面,该页面会显示所有以" ...
- Python藏头诗创作教程
1.首先我们要从网上用爬虫爬取古诗 这里我们用urllib库来进行爬虫,然后用re和beautifulsoup来进行解析 爬取的网站是https://so.gushiwen.org/mingju/ 然 ...
- python做一个藏头诗
可以使用Python的第三方库,如jieba,来分词处理文本.然后根据预先设定的藏头诗模板,在分词后的文本中寻找符合模板的词语,并将其替换为藏头. 示例代码如下: import jiebadef hi ...
- 用python 居然可以生成 情话、藏头诗、对联?
哈喽,大家好呀~ 在平常人的心目中我们程序员都是呆板,都带着一副眼镜,喜欢穿寸衣,T恤普遍都是黑白灰三种颜色.今天我就教你们如何用python生成 情话.藏头诗.对联. 安装环境(已mac为例) 一. ...
最新文章
- Bengio亲自授课,英国皇家院士参与,这份机器学习在线课别错过丨免费
- vue中props的双向绑定
- mysql栏的范围外值,MySQL中各种字段的取值范围-数据库专栏,MySQL
- python类型-Python基本内置数据类型有哪些?
- 5G对数据中心的架构产生的影响-vecloud微云
- idea 升级到2020后 无法启动_启动崩盘!IDEA 2020 无法启动的解决办法|赠送 IDEA 2020 新功能...
- STL学习之一(栈(statck))
- C - Digital Path 计蒜客 - 42397 05-29
- react js 添加样式_如何在React JS Application中添加图像?
- python规定浮点数类型可以不带小数部分吗_Python标准数据类型-数字
- matlab计算系统过渡过程时间,MATLAB在电机拖动拖动系统过渡过程分析中的应用
- Java 容器源码分析之 TreeMap
- python 类 字典_python基础类型—字典
- 电脑快捷启动工具 Lily5.1
- 计算机工业机器人编程,15个你不知道的工业机器人编程冷知识
- 微型计算机三部分基本组成,微型计算机的基本组成-电脑自学网
- 陈经纶2021年高考成绩查询时间,北京30余所高中2017年高考成绩汇总
- python 三维栅状图_基于OpenGL的二维矢量地图可视化技术研究
- 联合阿里在职测开工程师耗时一个星期写的 【接口测试+自动化接口接口测试详解]
- 程序设计基础大作业:学生信息管理系统plus(彩色界面,登录功能,文件操作,多文件)
热门文章
- 第六章 selenium自动化测试工具:天下工具为我所用
- 《机器学习》(周志华)线性回归
- 【Pandas-1】十分钟入门Pandas (上)
- 国家标准(简称国标)下载备忘
- CSA云计算关键领域安全指南4.0 (中文版)
- 【论文速读】Dan_Deng_AAAI2018_PixelLink_Detecting_Scene_Text_via_Instance_Segmentation
- 二、docker 镜像容器常用操作(让我们用docker 溜得飞起)
- 管理是个难题,向你讲述小企业经验
- 【北亚数据恢复】误操作分区损坏导致SqlServer数据库数据丢失的数据恢复案例
- 计算机图形学五:几何-Geometry