吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 17593|回复: 41
收起左侧

[Python 转载] 更新新年祝福群发!小白转战Python微信定时发送消息给群或是个人!

  [复制链接]
新手小白学编程 发表于 2019-6-11 21:07
本帖最后由 新手小白学编程 于 2020-1-24 21:07 编辑

{:301_998:} 过年了发点祝福短信发现人太多了,老代码改一改直接定时群发走起!

[Python] 纯文本查看 复制代码
import itchat,time
import sys
from itchat.content import *
import datetime
import time
itchat.auto_login(hotReload=True)
wish_list =['用一对明亮的眼发现鼠年的美好,\n用一双勤劳的手创造鼠年的财富,\n用一颗宽容的心迎接鼠年的快乐,\n用一个灿烂的梦温暖鼠年的风景。\n鼠年快乐!']
#wish_list = ['除夕之夜很特别,一夜之间跨两年。\n家家户户守岁忙,灯火通明灯不灭。\n父母妻儿聚一起,共同等候新年来。\n朋友之情怎能忘,手指不停祝福传。\n祝你阖家幸福,生活美满。\n除夕快乐!']
SINCERE_WISH = wish_list[0]
friendList = itchat.get_friends(update=True)[1:]

while 1:
     now = datetime.datetime.now()
     now_str = now.strftime('%Y-%m-%d %H:%M:%S')[:10] #获取时间以便于做定时使用
     now_tm = now.strftime('%Y-%m-%d %H:%M:%S')[:19] 
     #print(now_str)
     print('\r{}'.format(now_tm), end ='')
     
     if now_str in ['2020-01-25']:
        for g in range(0,len(friendList)):
           itchat.send(SINCERE_WISH,friendList[g]['UserName'])
           print(now_tm)#打印发送的时间
           print( (friendList[g]['RemarkName'] or friendList[g]['NickName']),'已发送')
           sys.stdout.write(str(g+1)+"/"+str(len(friendList))+"\r")
           sys.stdout.flush()
           time.sleep(2)    
        print('done')
    
           
time.sleep(1) # 1秒发送三次  # 2秒发送四次
if __name__ == '__main__':
    itchar.auto_login()
    itchar.run()

{:301_972:}   因为需要群发消息给所有微信好友,自己改了个代码发现不行,换了个思路完美解决现在把代码给大家发出来,有需要自己带走
{:301_999:}工作需要每天要推送消息到某些群,还要给大家分别推送消息就专门去找了这些代码,并进行了一些修改,如果有其他需要大家自行补充,另外就是免责声明了:纯属个人学习成品,觉得不实用或是有盗版嫌疑的,请大家勿怪,我在论坛上没找到相关内容,这是我补充的,新手小白勿怪!反正是学习的内容,我把整个程序都贴上去了,想要使用的自己复制粘贴!
{:301_986:}使用本本程序前请自行查阅自己的微信是否支持网页版的登录,如不支持无法使用;
     使用本程序前请安装Python环境;
     使用本程序前请安装Ithat环境或wxpy环境;
     如果不会安装环境请自行百度PIP install Itchat  与 PIP install wxpy;
      微信群跟微信单人发送的区别已经标出来了,各位大佬自行修改就行!

user =itchat.search_chatrooms(name=u'微信群名')
user =itchat.search_friends(name=u'名字')   #修改名字单人
{:301_1001:}不说了上程序上图
{:301_997:}更新代码:群发好友
[Python] 纯文本查看 复制代码
import itchat,time
import sys
from itchat.content import *
itchat.auto_login(hotReload=True)
wish_list = ['微信僵尸粉测试代码请勿回复']
SINCERE_WISH = wish_list[0]
friendList = itchat.get_friends(update=True)[1:]

for g in range(0,len(friendList)):
    itchat.send(SINCERE_WISH,friendList[g]['UserName'])
    print((friendList[g]['RemarkName'] or friendList[g]['NickName']),'已发送')
    sys.stdout.write(str(g+1)+"/"+str(len(friendList))+"\r")
    sys.stdout.flush()
    time.sleep(2)
print('done')

以下是老代码了

{:301_1000:}开图:

登陆成功

登陆成功


当天提醒全部完成

当天提醒全部完成

{:301_978:}上程序
[Python] 纯文本查看 复制代码
import itchat 
import datetime
import time
itchat.auto_login(hotReload=True)#保留登录历史下次直接手机登录
user =itchat.search_friends(name=u'名字')   #修改名字就行  U可删可不删
userName = user[0][u'UserName']#提取出需要的名字对应的编号
while 1:
     now = datetime.datetime.now()#取时间
     now_str =now.strftime('%Y-%m-%d %H:%M:%S')[11:]#取时间11位往后的
    # print(now_str)
     print('\r{}'.format(now_str), end ='')#打印时间
     if now_str in ['15:33:00']:#定时任务开始执行
          itchat.send('早上好!起床吃早餐了!',toUserName=userName)
          time.sleep(1)
     if now_str in ['12:00:00']:
          itchat.send('该吃午饭了!',toUserName=userName)
          time.sleep(1)
     if now_str in ['18:00:00']:
          itchat.send('该吃晚饭了!',toUserName=userName)
          time.sleep(1)
     if now_str in ['21:00:00']:
          itchat.send('晚安!',toUserName=userName)
          print('今天的提醒已全部发送完了!')#当天最后一个任务完成后的提醒
          time.sleep(1)
           
time.sleep(1) # 1秒发送三次  # 2秒发送四次
if __name__ == '__main__':
    itchar.auto_login()#扫码登录
    itchar.run()#保持微信登录状态

{:301_1001:}第二套程序针对返回微信群的自行修改群名即可//要求微信群必须在通讯录内否则无法发送,具体方式请自行百度
[Python] 纯文本查看 复制代码
import itchat
import datetime
import time
itchat.auto_login(hotReload=True)
user =itchat.search_chatrooms(name=u'微信群名')
userName = user[0][u'UserName']

while 1:
     now = datetime.datetime.now()
     now_str =now.strftime('%Y-%m-%d %H:%M:%S')[11:]
    
    # print(now_str)
     print('\r{}'.format(now_str), end ='')
     if now_str in ['07:50:00']:
          itchat.send('所要发送的内容',toUserName=userName)
          time.sleep(1) 
          
     if now_str in ['20:00:00']:
         itchat.send('所要发送的内容',toUserName=userName)
         time.sleep(1)
         print('今天提醒已发送成功')
time.sleep(1) # 1秒发送三次  # 2秒发送四次
if __name__ == '__main__':
    itchar.auto_login()
    itchar.run()

{:301_980:}忘记加wxpy环境的了现在补上
[Python] 纯文本查看 复制代码
    
from __future__ import unicode_literals
from threading import Timer
from wxpy import *
import requests
import itchat

bot = None
def get_news():
    #获取一个连接中的内容
    url = "http://open.iciba.com/dsapi/"
    r = requests.get(url)
   # print(r.json())
    contents = r.json()['content']
    translation = r.json()['translation']
    return contents,translation
def login_wechat():
    global bot
    bot = Bot( cache_path=True)
   
   #  bot = Bot(console_qr=2,cache_path="botoo.pkl")#linux环境上使用
def send_news():
    if bot == None:
        login_wechat()
    
    try:
        my_friend = bot.friends().search(u'微信昵称')[0] #xxx表示微信昵称
        my_friend.send(get_news()[0])
        my_friend.send(get_news()[1][5:])
        my_friend.send(u"来自最爱你的人")
        print(u"成功!!")
        t = Timer(86400, send_news) #360是秒数
        t.start()
    except:
        print(u"失败!!")
if __name__ == "__main__":
    send_news()
    #print(get_news()[0])

{:301_973:}最后这个在论坛上可能有具体哪个位置我也忘了,希望兄弟不要介意,我也是刚学,还有的不太懂

[Python] 纯文本查看 复制代码
import itchat,time
import sys
from itchat.content import *
import datetime
import time
itchat.auto_login(hotReload=True)
wish_list =['用一对明亮的眼发现鼠年的美好,\n用一双勤劳的手创造鼠年的财富,\n用一颗宽容的心迎接鼠年的快乐,\n用一个灿烂的梦温暖鼠年的风景。\n鼠年快乐!']
#wish_list = ['除夕之夜很特别,一夜之间跨两年。\n家家户户守岁忙,灯火通明灯不灭。\n父母妻儿聚一起,共同等候新年来。\n朋友之情怎能忘,手指不停祝福传。\n祝你阖家幸福,生活美满。\n除夕快乐!']
SINCERE_WISH = wish_list[0]
friendList = itchat.get_friends(update=True)[1:]

while 1:
     now = datetime.datetime.now()
     now_str = now.strftime('%Y-%m-%d %H:%M:%S')[:10] #获取时间以便于做定时使用
     now_tm = now.strftime('%Y-%m-%d %H:%M:%S')[:19] 
     #print(now_str)
     print('\r{}'.format(now_tm), end ='')
     
     if now_str in ['2020-01-25']:
        for g in range(0,len(friendList)):
           itchat.send(SINCERE_WISH,friendList[g]['UserName'])
           print(now_tm)#打印发送的时间
           print( (friendList[g]['RemarkName'] or friendList[g]['NickName']),'已发送')
           sys.stdout.write(str(g+1)+"/"+str(len(friendList))+"\r")
           sys.stdout.flush()
           time.sleep(2)    
        print('done')
    
           
time.sleep(1) # 1秒发送三次  # 2秒发送四次
if __name__ == '__main__':
    itchar.auto_login()
    itchar.run()

免费评分

参与人数 7吾爱币 +7 热心值 +7 收起 理由
wuAiPoJei0001 + 1 + 1 谢谢@Thanks!
Remdo + 2 + 1 希望老哥解答一下
Mryu_ + 1 + 1 用心讨论,共获提升!
嘛名字不名字的 + 1 + 1 用心讨论,共获提升!
k8236721 + 1 + 1 谢谢@Thanks!
wanghuai + 1 谢谢@Thanks!我的错误显示是“<error><ret>1203</ret><mess.
w7267377 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 新手小白学编程 发表于 2019-6-12 19:28
zhaiker521 发表于 2019-6-12 16:41
#提取出需要的名字对应的编号 这句话没看懂

user =itchat.search_friends(name=u'名字')
使用itchat模块进行微信备注名或是微信名称搜索后,建立user这个字典
userName = user[0][u'UserName']  
调用user这个字典中的用户名选项(Username),可以直接打印user出来看下就能明白了!
zhaiker521 发表于 2019-6-12 19:14
[Python] 纯文本查看 复制代码
from __future__ import unicode_literals
from threading import Timer
from wxpy import *
import requests
import itchat
bot = Bot(cache_path = True)
my_friend = ensure_one(bot.search('zhaike'))
tuling = Tuling(api_key="1234567890")

@bot.register(my_friend)
def reply_my_friend(msg):
    tuling_reply = tuling.do_reply(msg)
    
def get_news():
    
    url = "http://open.iciba.com/dsapi/"
    r = requests.get(url)
   # print(r.json())
    contents = r.json()['content']
    translation = r.json()['translation']
    return contents,translation
def login_wechat():
    global bot
    bot = Bot( cache_path=True)
    
   #  bot = Bot(console_qr=2,cache_path="botoo.pkl")#linux环境上使用
def send_news():
    if bot == None:
        login_wechat()
     
    try:
        my_friend = bot.friends().search(u'zhaike')[0] #xxx表示微信昵称
        my_friend.send(get_news()[1][5:]+'---来自一个喜欢你的人!')
        print(u"成功!!")
        t = Timer(86400, send_news) #360是秒数
        t.start()
    except:
        print(u"失败!!")
if __name__ == "__main__":
    send_news()
    #print(get_news()[0])
bot.start()


在大佬的基础上把图灵给复制粘贴进去了。。。。
风/生/水/起 发表于 2019-6-11 21:23
xilan 发表于 2019-6-11 22:06
关注一下,打算试试
nbsking 发表于 2019-6-12 10:55
可以把py转exe,做成不带命令行提示框的,让提示信息做成messagebox的信息弹窗,同时让exe带托盘图标,这样就更方便了
zhaiker521 发表于 2019-6-12 16:41
#提取出需要的名字对应的编号 这句话没看懂
 楼主| 新手小白学编程 发表于 2019-6-12 19:36
zhaiker521 发表于 2019-6-12 19:14
[mw_shl_code=python,true]from __future__ import unicode_literals
from threading import Timer
from  ...

这个涉及到爬虫的一些问题,我也是小白,还在慢慢学
 楼主| 新手小白学编程 发表于 2019-6-12 19:38
nbsking 发表于 2019-6-12 10:55
可以把py转exe,做成不带命令行提示框的,让提示信息做成messagebox的信息弹窗,同时让exe带托盘图标,这样 ...

为了避免有人说我侵权,这只是学习贴,这样方便,反正代码都在这里,需要的自己去复制粘贴就行。另外如果做成EXE指不定被哪个无良商人拿去卖了。
jiu3681 发表于 2019-6-20 16:05
大神问一下 如果推送图片的话 怎么推送呢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 19:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表