(图片来源于互联网: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, 超级好用,可以选择哪句押韵,五言还是七言,藏的字在句中的位置等,比自己训练的结果靠谱多了。

  1. def gen_poetry(key='这是测试',p_len='7',p_type='1',p_rythm='2'):

  2.    """

  3. 输入皆为str

  4. p_len=5 五言

  5. p_len=7 七言

  6. p_type=1 藏头

  7. p_type=2 藏尾

  8. p_type=3 藏中

  9. p_type=4 递增

  10. p_type=5 递减

  11. p_rythm=1 双句一压

  12. p_rythm=2 双句押韵

  13. p_rythm=3 一三四押

  14. """

  15.    from urllib import request, parse

  16.    import json

  17.    showapi_appid="**********"  

  18.    showapi_sign="**************************"  

  19.    url="http://route.showapi.com/950-1"

  20.    send_data = parse.urlencode([('showapi_appid', showapi_appid),

  21. ('showapi_sign', showapi_sign)

  22.        ,('num', p_len)

  23.        ,('type',p_type)

  24.        ,('yayuntype', p_rythm)

  25.        ,('key', key)

  26.    ])

  27.    req = request.Request(url)

  28.    try:

  29.        response = request.urlopen(req, data=send_data.encode('utf-8'),

  30. timeout = 10) # 10秒超时反馈

  31.    except Exception as e:

  32.        print(e)

  33.    result = response.read().decode('utf-8')

  34.    result_json = json.loads(result)

  35.    res_body=result_json['showapi_res_body']

  36.    poetry_txt=res_body['list']

  37.    return poetry_txt

这个函数主要来源于showapi的示例,需要自行上showapi网站注册,免费获取藏头诗的showapiappid和showapisign。另外这个showapi的网站有很多好玩的api可以尝试。函数会返回一个list,存放6个句子(如下),可以随机选取或者只选取某一句。

gen_poetry("萧平旌")

  1. Out[2]:

  2. ['萧关扫定犬羊群,平旦敲门门未开。旌旗不断春风前,',

  3. '萧寥天清而灭云,平地寸步扃云岩。旌封香火几千年,',

  4. '萧画枝活叶叶动,平川不见龙行雨。旌旆逶迤碣石间,',

  5. '萧艾转肥兰蕙瘦,平地能开洞穴幽。旌封香火几千年,',

  6. '萧何人杰足封侯,平碧浅春生绿塘。旌旆红尘已出城,',

  7. '萧何身后散图书,平持旄节步空虚。旌封香火几千年,']

step3.安装itchat

itchat的原理大概是抓取微信网页版的的数据包,获得微信的请求数据,进而获得微信朋友的基本信息,如好友的头像、性别、所在地、个性签名、备注、昵称等。当然也可以发送和接受消息。这个module玩法很多,比如,可以做一些描述性统计,看下你的朋友的所在地分布,男的多还是女的多之类,或者是把朋友的个性签名做成一个词云,或者可以把所有好友的头像拼成一个大图,或者自己给自己安排一个聊天机器人~~这些内容都比较简单,可以百度教程和代码

在这里只需要用到最简单的两个功能,读取好友列表(好友备注名)和发送消息。 这里的问题会有:

  • 好友需要备注正确,备注不对,发送的内容自然会有问题。

  • 生僻字可能做不出诗句

  • 诗句可能没什么特别的意义,看着一头雾水。 个人觉得祝福传达到就行了

  • 微信网页版很小可能会被封几天【这个是比较囧】 因为如果使用python调用微信发消息,一秒钟可能发出上万条消息,也很容易被检测出来,所以用的时候要小心【目前想到的方法是在发送的时候使用time.sleep()的方法,尚未测试】。在自己小号上测试,还有用小号建立聊天机器人都没有被封过。自己在调试藏头诗祝福语的时候不小心用登陆了大号,结果好像是发了大概8+个朋友的信息,还好当时代码有个bug,不然要手动撤回100多条信息,可能是因为反复登录或信息发太快,网页版微信被封了几天。囧rz

  • itchat需要扫码登陆,目前python调用微信的基本都是这个module,不放心的就不要尝试了。

代码思路很简单:登陆微信,获取好友列表,获取id和备注名,使用备注名做藏头诗,对于备注名,两个字的名字用full name,三个字的名字使用given name,这样感觉更为亲切,少于2个字或者多于3个字的名字自行忽略。加上固定的内容,自己名字和新年祝福的藏头诗,发送。发送时自行加上时间间隔。

  1. import itchat

  2. import time

  3. itchat.auto_login()

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

  5. for i in friends:

  6.    name=i['RemarkName'] #获取备注名

  7.    uname=i['UserName']

  8.    msg1='平碧浅春生绿塘\n旌旗不断春风前\n祝辞回谢递丹霄\n'

  9.    msg3='新歌一曲送祝福\n年年有余五谷丰\n快意人生精神爽\n乐享华年正从容\n'

  10.    if len(name)==2:

  11.        name_input=name

  12.        msg0='hey %s,平旌的新年祝福送上:\n'%name_input

  13.        msg2=gen_poetry(name_input)[3]

  14.        msg2=msg2.replace(',','\n')

  15.        msg2=msg2.replace('。','\n')

  16.        my_msg=msg0+msg1+msg2+msg3

  17.        itchat.send(my_msg, toUserName=uname)

  18.        #print(my_msg)

  19.    elif len(name)==3:

  20.        name_input=name[1:]

  21.        msg0='hey %s,平旌的新年祝福送上:\n'%name_input

  22.        msg2=gen_poetry(name_input)[3]

  23.        msg2=msg2.replace(',','\n')

  24.        msg2=msg2.replace('。','\n')

  25.        my_msg=msg0+msg1+msg2+msg3

  26.        itchat.send(my_msg, toUserName=uname)

  27.        #print(my_msg)

  28.    else:

  29.         continue

  30.     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给你的微信朋友群发私人订制的藏头诗相关推荐

  1. python中生成藏头诗

    可以使用 Python 库 NLTK(Natural Language Toolkit)来生成藏头诗.具体实现方法如下: 安装 NLTK 库,在命令行中运行 pip install nltk. 引入库 ...

  2. Python PaddleNLP实现自动生成虎年藏头诗

    这篇文章主要介绍了利用Python PaddleNLP实现自动生成虎年藏头诗功能,文中的示例代码讲解详细,感兴趣的同学可以跟随小编一起试一试.Python编程学习资料点击免费领取 目录 1.paddl ...

  3. Python爬虫爬取微信朋友圈的方法,感兴趣的朋友可以了解下

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 小雨 | 作者 python教程 | 来源 接下来,我们将实现微信朋友圈的 ...

  4. Python爬虫爬取微信朋友圈

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.op-kg.com/ ...

  5. python藏头诗_Python简单实现表白藏头诗

    Python简单实现表白藏头诗 导入数据 数据分行 存在很多空行 长度为24和16的行可能是正确的诗句(分别对应五言和七言) 部分长度正确的行,可能是目录行,标题等,需要仔细甄别 数据清洗 203 秦 ...

  6. python藏头诗_如何使用Python做一个藏头诗生成器?

    藏头诗是可以利用Python做出来呃,具体是如何做的呃,下面随融跃小编一起了解一下! 爬取诗句 在百度搜索"我开头的诗句",可以进入到百度汉语的页面,该页面会显示所有以" ...

  7. Python藏头诗创作教程

    1.首先我们要从网上用爬虫爬取古诗 这里我们用urllib库来进行爬虫,然后用re和beautifulsoup来进行解析 爬取的网站是https://so.gushiwen.org/mingju/ 然 ...

  8. python做一个藏头诗

    可以使用Python的第三方库,如jieba,来分词处理文本.然后根据预先设定的藏头诗模板,在分词后的文本中寻找符合模板的词语,并将其替换为藏头. 示例代码如下: import jiebadef hi ...

  9. 用python 居然可以生成 情话、藏头诗、对联?

    哈喽,大家好呀~ 在平常人的心目中我们程序员都是呆板,都带着一副眼镜,喜欢穿寸衣,T恤普遍都是黑白灰三种颜色.今天我就教你们如何用python生成 情话.藏头诗.对联. 安装环境(已mac为例) 一. ...

最新文章

  1. Bengio亲自授课,英国皇家院士参与,这份机器学习在线课别错过丨免费
  2. vue中props的双向绑定
  3. mysql栏的范围外值,MySQL中各种字段的取值范围-数据库专栏,MySQL
  4. python类型-Python基本内置数据类型有哪些?
  5. 5G对数据中心的架构产生的影响-vecloud微云
  6. idea 升级到2020后 无法启动_启动崩盘!IDEA 2020 无法启动的解决办法|赠送 IDEA 2020 新功能...
  7. STL学习之一(栈(statck))
  8. C - Digital Path 计蒜客 - 42397 05-29
  9. react js 添加样式_如何在React JS Application中添加图像?
  10. python规定浮点数类型可以不带小数部分吗_Python标准数据类型-数字
  11. matlab计算系统过渡过程时间,MATLAB在电机拖动拖动系统过渡过程分析中的应用
  12. Java 容器源码分析之 TreeMap
  13. python 类 字典_python基础类型—字典
  14. 电脑快捷启动工具 Lily5.1
  15. 计算机工业机器人编程,15个你不知道的工业机器人编程冷知识
  16. 微型计算机三部分基本组成,微型计算机的基本组成-电脑自学网
  17. 陈经纶2021年高考成绩查询时间,北京30余所高中2017年高考成绩汇总
  18. python 三维栅状图_基于OpenGL的二维矢量地图可视化技术研究
  19. 联合阿里在职测开工程师耗时一个星期写的 【接口测试+自动化接口接口测试详解]
  20. 程序设计基础大作业:学生信息管理系统plus(彩色界面,登录功能,文件操作,多文件)

热门文章

  1. 第六章 selenium自动化测试工具:天下工具为我所用
  2. 《机器学习》(周志华)线性回归
  3. 【Pandas-1】十分钟入门Pandas (上)
  4. 国家标准(简称国标)下载备忘
  5. CSA云计算关键领域安全指南4.0 (中文版)
  6. 【论文速读】Dan_Deng_AAAI2018_PixelLink_Detecting_Scene_Text_via_Instance_Segmentation
  7. 二、docker 镜像容器常用操作(让我们用docker 溜得飞起)
  8. 管理是个难题,向你讲述小企业经验
  9. 【北亚数据恢复】误操作分区损坏导致SqlServer数据库数据丢失的数据恢复案例
  10. 计算机图形学五:几何-Geometry