Python中怎么用itchat模块定时给朋友发送微信信息
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,这篇文章主要讲解了"Python中怎么用itchat模块定时给朋友发送微信信息",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python中怎么用itc
千家信息网最后更新 2025年11月16日Python中怎么用itchat模块定时给朋友发送微信信息
这篇文章主要讲解了"Python中怎么用itchat模块定时给朋友发送微信信息",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python中怎么用itchat模块定时给朋友发送微信信息"吧!
功能
定时给女朋友发送每日天气、提醒、每日一句。
数据来源
每日一句和上面的大佬一样也是来自ONE·一个
天气信息来自SOJSON
实现效果


代码说明
目录结构
city_dict.py :城市对应编码字典
config.yaml :设置定时时间,女友微信名称等参数
GFWeather.py:核心代码
requirements.txt:需要安装的库
run.py:项目运行类
核心代码
GFWeather.py
class gfweather: headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36", } # 女朋友的用户id bf_wechat_name_uuid = '' def __init__(self): self.city_code, self.start_datetime, self.bf_wechat_name, self.alarm_hour, self.alarm_minute = self.get_init_data() def get_init_data(self): ''' 初始化基础数据 :return: ''' with open('config.yaml', 'r', encoding='utf-8') as f: config = yaml.load(f) city_name = config.get('city_name').strip() start_date = config.get('start_date').strip() wechat_name = config.get('wechat_name').strip() alarm_timed = config.get('alarm_timed').strip() init_msg = f"每天定时发送时间:{alarm_timed}\n女友所在城市名称:{city_name}\n女朋友的微信昵称:{wechat_name}\n在一起的第一天日期:{start_date}" print(u"*" * 50) print(init_msg) # 根据城市名称获取城市编号,用于查询天气。查看支持的城市为:http://cdn.sojson.com/_city.json city_code = city_dict.city_dict.get(city_name) if not city_code: print('您输出城市无法收取到天气信息') start_datetime = datetime.strptime(start_date, "%Y-%m-%d") hour, minute = [int(x) for x in alarm_timed.split(':')] # print(hour, minute) return city_code, start_datetime, wechat_name, hour, minute def is_online(self, auto_login=False): ''' 判断是否还在线, :param auto_login:True,如果掉线了则自动登录。 :return: True ,还在线,False 不在线了 ''' def online(): ''' 通过获取好友信息,判断用户是否还在线 :return: True ,还在线,False 不在线了 ''' try: if itchat.search_friends(): return True except: return False return True if online(): return True # 仅仅判断是否在线 if not auto_login: return online() # 登陆,尝试 5 次 for _ in range(5): # 命令行显示登录二维码 # itchat.auto_login(enableCmdQR=True) itchat.auto_login() if online(): print('登录成功') return True else: return False def run(self): # 自动登录 if not self.is_online(auto_login=True): return # 定时任务 scheduler = BlockingScheduler() # 每天9:30左右给女朋友发送每日一句 scheduler.add_job(self.start_today_info, 'cron', hour=self.alarm_hour, minute=self.alarm_minute) scheduler.start() def start_today_info(self): print("*" * 50) print('获取相关信息...') dictum_msg = self.get_dictum_info() today_msg = self.get_weather_info(dictum_msg) print(f'要发送的内容:\n{today_msg}') if self.is_online(auto_login=True): # 获取好友username if not self.bf_wechat_name_uuid: friends = itchat.search_friends(name=self.bf_wechat_name) if not friends: print('昵称错误') return self.bf_wechat_name_uuid = friends[0].get('UserName') itchat.send(today_msg, toUserName=self.bf_wechat_name_uuid) print('发送成功..\n') def get_dictum_info(self): ''' 获取格言信息(从『一个。one』获取信息 http://wufazhuce.com/) :return: str 一句格言或者短语 ''' print('获取格言信息..') user_url = 'http://wufazhuce.com/' resp = requests.get(user_url, headers=self.headers) soup_texts = BeautifulSoup(resp.text, 'lxml') # 『one -个』 中的每日一句 every_msg = soup_texts.find_all('div', class_='fp-one-cita')[0].find('a').text return every_msg def get_weather_info(self, dictum_msg=''): ''' 获取天气信息。网址:https://www.sojson.com/blog/305.html :param dictum_msg: 发送给朋友的信息 :return: ''' print('获取天气信息..') weather_url = f'http://t.weather.sojson.com/api/weather/city/{self.city_code}' resp = requests.get(url=weather_url) if resp.status_code == 200 and resp.json().get('status') == 200: weatherJson = resp.json() # 今日天气 today_weather = weatherJson.get('data').get('forecast')[1] locale.setlocale(locale.LC_CTYPE, 'chinese') today_time = datetime.now().strftime('"%Y年%m月%d日 %H:%M:%S"') # 今日天气注意事项 notice = today_weather.get('notice') # 温度 high = today_weather.get('high') high_c = high[high.find(' ') + 1:] low = today_weather.get('low') low_c = low[low.find(' ') + 1:] temperature = f"温度 : {low_c}/{high_c}" # 风 fx = today_weather.get('fx') fl = today_weather.get('fl') wind = f"{fx} : {fl}" # 空气指数 aqi = today_weather.get('aqi') aqi = f"空气 : {aqi}" day_delta = (datetime.now() - self.start_datetime).days delta_msg = f'宝贝这是我们在一起的第 {day_delta} 天' today_msg = f'{today_time}\n{delta_msg}。\n{notice}\n{temperature}\n{wind}\n{aqi}\n{dictum_msg}\n来自最爱你的我。' return today_msg项目运行
安装依赖
使用 pip install -r requirements.txt 安装所有依赖
参数配置
config.yaml
#每天定时发送的时间点,如:8:30alarm_timed: '9:30'# 女友所在城市名称city_name: '桂林'# 你女朋友的微信名称wechat_name: '古典'# 从那天开始勾搭的start_date: '2017-11-11'
感谢各位的阅读,以上就是"Python中怎么用itchat模块定时给朋友发送微信信息"的内容了,经过本文的学习后,相信大家对Python中怎么用itchat模块定时给朋友发送微信信息这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
信息
天气
城市
在线
朋友
名称
女朋友
模块
登录
代码
内容
女友
时间
格言
学习
成功
参数
好友
所在
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库每天一个固定时间数据丢失
网络安全模式下不能做什么
旧手机怎样当一个服务器
浙江嘉兴电信服务器地址云主机
思科网络安全原理与实践
高性价比软件开发本
access数据库字段的类型有哪几种
ps数据库文件怎么打开
学校网络安全方面的宣传
闵行区参考数据库服务收费标准
服务器ping显示不了
mysql数据库2017
池州证券软件开发定制
系统软件开发国家规范
云南网络安全保障方案
网络安全研究方向怎么选
高中网络安全手抄报模板大全
萧何大秦数据库
金蝶专业版数据库不一致
有线网络安全员证书
传奇服务器充值币种
医学人工智能数据库运营状况
柯尼卡喷头控制软件开发
全年级公共数据库排名
多合一数据库
信息网络安全稿费
网络技术app下载
外国服务器哪家便宜
网络安全教育月活动总结
后端开发和软件开发哪个好