使用Python在520给女友微信定时批量发送99条情话

阿巴阿巴阿巴

520 到了(迟到的详解),如何大批量给女友发情话呢?首先得有情话吧,情话哪里来呢?我找到了一个情话 api,请求地址:https://api.shadiao.app/chp ,那么如何获取情话通过微信发送给女友呢?请看一下详细步骤

请求情话 API

首先得导入Requests库,如果没有在 cmd 安装:pip3 install requests, 然后先创建一个空列表 content 用于存储情话,创建一个 Sessions 用于持续访问(在这里其实没用),再将网址赋值给 url 变量,因为该 api 使用 GET 请求,所以使用 get 方法请求这个 api 地址,然后用列表的 addend 方法保存进 content,最后自定义一个函数封装,这里我自定义一个 parse 函数

import requests

content = []

def parse():
    Sessions = requests.session()
    url = "https://api.shadiao.app/chp"
    re = Sessions.get(url=url)
    content.append(re.json()["data"]["text"])

发送微信消息

导入 itchat 库提供的微信接口来查找好友并发送消息(该库需要通过 pip 安装),然后用 auto_login 方法登录微信,然后添加 hotReload 参数并赋值为 True 用于存储登录信息,然后用 search_friends 方法查找你女友的备注名称并赋值给 user,然后用 send 方法来发送消息,该方法第一个参数是需要发送的信息也就是 content 列表中的情话,再填入一个 toUserName 参数为需要发送给谁也就是 user 的信息,但是 user 的信息的是一个列表套字典有很多参数,我们只需要第一个字典中的 UserName 的值:user[0]["UserName"],最后自定义一个函数封装,这里我自定义一个 sen_msg 函数,但是需要设置一个获取列表下标的参数,我这里设置为 size,因为后面需要循环发送 99 条,不可能发个情话列表过去吧,所以发送的消息应为:content[size]

import itchat

def sen_msg(size):
    itchat.auto_login(hotReload=True)
    user = itchat.search_friends("这里为你女友的备注")
    itchat.send(content[size], toUserName=user[0]["UserName"])

启动函数

用 for 循环请求 99 次 api,将 99 条情话存入 content,并通过微信发送给女友,最后自定义一个函数封装,这里我自定义一个 sen_msg 函数

def run():
    for i in range(99):
        parse()
        sen_msg(size=i)

定时发送

这里导入一个 schedule 第三方库(该库需要通过 pip 安装),该库是个调度器,我们用它来创建一个定时任务,用every().thursday.at("13:14").do(run)方法在星期五的 13 点 14 分运行 run 函数,然后用 run_pending 方法运行在 while 循环中并每秒检查一次时间,所以需要导入 time,用 sleep 方法等待一秒

import schedule
import time

schedule.every().thursday.at("13:14").do(run)  # 星期四的13:14发一次
while True:
    schedule.run_pending()
    time.sleep(1)

完整代码

因为运行 sen_msg 函数时会登录微信一次,但是在定时的那个时间不一定在电脑前,所以我们将itchat.auto_login(hotReload=True)写在开头,也就是运行该脚本的时候就登录一次,hotReload=True会保存我的登录信息

import requests
import schedule
import itchat
import time

content = []
Sessions = requests.session()
itchat.auto_login(hotReload=True)  # hotReload=True用于存储登录信息

# 请求情话api
def parse():
    url = "https://api.shadiao.app/chp"
    re = Sessions.get(url=url)
    content.append(re.json()["data"]["text"])

# 发送微信消息
def sen_msg(size):
    print(content[size])
    user = itchat.search_friends("你女友的备注")
    itchat.send(content[size], toUserName=user[0]["UserName"])

# 启动
def run():
    for i in range(99):
        parse()
        sen_msg(size=i)

schedule.every().thursday.at("13:14").do(run)  # 星期四的13:14发一次
while True:
    schedule.run_pending()
    time.sleep(1)

最终效果GitHub 地址
在这里插入图片描述

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2020-2023 UodRad
  • 访问人数: | 浏览次数:

请我喝杯奶茶吧~

支付宝
微信