背景
2019年淘宝盖楼真的坑!不想天天拉人头,从而衍射了微信卖楼党,由中介去接单,然后在群里说“9点15分 1000单 0.03”的字样,群里有点赞次数的会刷自己的层数,然后枪单卖楼。
作为工作党,哪有时间时刻监视群,于是自己动手写了一个脚本,挂着测试,也经常误触发闹笑话,废话不多说,以下:
代码
import itchat
import re
import time
gname = '淘宝房地产'
reply_answ = 0
reply_price =0
@itchat.msg_register(itchat.content.TEXT,isGroupChat=True)
def reply_msg(msg):
global reply_answ,reply_price #全局变量 和C/C++有点不一样
reply_answ = 0
reply_price = 0
if msg.User['NickName'] == gname and len(msg.text)<50: #某个特定的群,同时屏蔽字数太多的(经常会发公告或者长篇说明)
print(msg.text)
"""
首先看看整数部分的筛选,这个做大于300的限制是,群里会@人,这些人的名字会带自己的层数,而群要求
是不允许带超过200层的,做大于300的判断就几乎保证,这个数字数需要卖的层数
"""
for i in re.findall(r'\d+',msg.text):
if int(i)> 300:
#tkinter.messagebox.showinfo('tips','有单,接吗?') #本来想做提示,但是这个要按确定才能进行,放弃!
reply_answ = 1
break
"""
这里是选取小数部分,也即是金额,会有人想乘机压低价格,太低才不卖呢!
"""
for i in re.findall(r"\d+\.?\d*",msg.text):
if float(i) >=0.026 and float(i)<= 0.5:
reply_price = 1
break
"""
可能是买楼的消息,且价格合适,再正则做最后一次判断,然后return就是自动发送的内容了
"""
if reply_answ ==1 and reply_price == 1:
if re.search(r'单', msg.text, re.M | re.I) and re.search(r'层',msg.text , re.M | re.I):
print("即将回复")
time.sleep(2)
return '1 90'
if __name__ == '__main__':
# 扫码登陆微信
itchat.auto_login()
itchat.run()
总结
1.知道了原来有python全局变量是酱紫的T^T,然后也练习了一下正则表达式吧,测试到后面觉得卖楼没有修改bug好玩!
2.这个整体判断很简单粗暴,之后想加一个朴素贝叶斯进行一个分类识别,可惜没这么一个高活跃度的群给我做测试了,哈哈哈哈!如果写了再更新吧~