女神节▍教你用Python撩妹:微信推送天气早报/睡前故事/精美图片

640?wx_fmt=jpeg

640?wx_fmt=png女神节

首先,谨代表我自己以及剩下的1,2,3,4,5,6,7……个光棍程序员向今日所有过节的小姐姐们道一声“节日快乐,女王大人smiley_83.png”。


女神节,当然也要送小姐姐们礼物了,谁叫咱是程序员,直男,纯爷们,送的礼物当然也要别(xiang)出(po)心(tou)裁(le )2_05.png。除了别出心裁,最重要的还是要“硬核”,实力撩妹smiley_79.pngsmiley_79.png


今天就和大家分享几个【Python撩妹合集】,文章来自旺旺笔记,作者为躲猫猫的猫。

640?wx_fmt=jpeg



如果你还在为不知道怎么撩妹而烦恼,不知道怎么勾搭小仙女而困惑,又或者不知道怎么讨女朋友欢心而长吁短叹。


那么不要犹豫徘徊,往下看。接下来我会分享怎么使用 Python 实现微信自动聊天,微信每日天气早报、睡前故事及精美图片推送。


学会之后,迎娶白富美,走上人生巅峰就指日可待啦。(✪ω✪)


不信咱先看看效果展示:


(皮皮是我家猫的名字,所有我把命令设成这样子的)


640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

如此贴心的舔狗,哪个小姐姐会选择拒绝呢2_02.png2_02.png

640?wx_fmt=png


目录:


一、Python 登录微信

二、获取天气早报信息

三、获取睡前故事

四、获取精美壁纸

五、整合数据,配置定时任务

七、Git 地址

八、视频:用python画了颗心给你

640?wx_fmt=gif 一、Python 登录微信


Python 中有个 itchat 包,这是个开源的微信个人号接口,非常简单就可以实现在 python 对微信的操作。


下面贴一下基本的登录、对话代码

import itchat
itchat.auto_login(hotReload=True) # 登录,会下载二维码给手机扫描登录,hotReload设置为True表示以后自动登录itchat.send('hello my love', toUserName='filehelper') #发送信息给微信文件助手 friends = itchat.search_friends(name='好友昵称') # 获取微信好友列表userName = friends[0]['UserName']itchat.send('hello my love', toUserName=userName) # 发送信息给指定好友 itchat.run() # 让itchat一直运行

(之后展示的代码是对 itchat 的进行简单封装后的应用,可能会导致阅读有些麻烦,见谅,文章最后面我会贴上全部的代码 git)


详细了解 itchat 的应用可以看https://itchat.readthedocs.io/zh/latest/


640?wx_fmt=gif 、获取天气早报信息


获取每日天气信息:


我的天气信息是在 阿凡达数据 中申请的免费数据接口,里面也有很多好玩有趣的数据,最好自己去注册个账号。 

common = Common() #这是个我自己封装的工具类key = 'cc186c9881b94b42b886a6d634c632' #这个我修改了 嘻嘻
# 数据提供类class DataUtil(): # 获取天气信息 def getWeatherData(self, cityname): # 阿凡达数据 url = ' http://api.avatardata.cn/Weather/Query?key=' + key + '&cityname=' + cityname results = common.get(url) text = self.parseInfo_afd(results) print(text) return text
# 简单的数据修饰封装 def parseInfo_afd(self, jsons): # 将string 转换为字典对象 jsonData = json.loads(jsons) textInfo = '早上好,今天又是元气满满的一天哟.\n' data = jsonData['result']['weather'][0]['date'] week = jsonData['result']['weather'][0]['week'] nongli = jsonData['result']['weather'][0]['nongli'] city_name = jsonData['result']['realtime']['city_name'] lowTemperature = jsonData['result']['weather'][0]['info']['dawn'][2] highTemperature = jsonData['result']['weather'][0]['info']['day'][2] weather = jsonData['result']['weather'][0]['info']['day'][1] wind = jsonData['result']['weather'][0]['info']['day'][4]
textInfo = textInfo + '今天是' + data + '号\n' textInfo = textInfo + '农历:' + nongli + ',星期' + week + '\n' textInfo = textInfo + city_name + '气温:' + lowTemperature + '-' + highTemperature + '度,' + weather + ' ' + wind + '\n\n' textInfo = textInfo + '穿衣指数:' + jsonData['result']['life']['info']['chuanyi'][0] + ' - ' + jsonData['result']['life']['info']['chuanyi'][1] + '\n\n' textInfo = textInfo + '运动指数:' + jsonData['result']['life']['info']['yundong'][0] + ' - ' + jsonData['result']['life']['info']['yundong'][1] + '\n\n' textInfo = textInfo + '感冒指数:' + jsonData['result']['life']['info']['ganmao'][0] + ' - ' + jsonData['result']['life']['info']['ganmao'][1] + '\n\n' textInfo = textInfo + '紫外线指数:' + jsonData['result']['life']['info']['ziwaixian'][0] + ' - ' + jsonData['result']['life']['info']['ziwaixian'][1] + '\n\n' textInfo = textInfo + 'by:小可爱的贴心秘书' + '\n\n' return textInfo
640?wx_fmt=gif 三、获取睡前故事


睡前故事的来源是出自《从你的全世界路过--张嘉佳》,这本书中都是些爱情相关的小故事。

640?wx_fmt=png

我们用 night.n 来区分每晚发送的故事。


# 提取故事的第一天readBookStartDay = datetime.datetime(2019, 2, 17)
class DataUtil():
def getBookInfo(self, filePath): #文件路径, radioList = [] #微信每次最多只能发送的字符是有限制的,我每25行发送一次信息 row = 0 tempInfo = textInfo = '睡前故事:张嘉佳 - 《从你的全世界路过》.\n\n' readFlag = False #是否读取 today = datetime.datetime.now() dayCount = (today - readBookStartDay).days + 1 for line in open(filePath): if (line.find('night.' + str(dayCount)) > -1): # 开始读数据 readFlag = True continue if (line.find('night.' + str(dayCount+1)) > -1): # 读完一天数据结束 break if readFlag: row += 1 tempInfo += line # 微信每次最多只能发送的字符是有限制的,我每25行发送一次信息 if row == 25: radioList.append(tempInfo) tempInfo = '' row = 0 tempInfo += '\n晚安\n' + 'by:小可爱的贴心秘书' + '\n' radioList.append(tempInfo) # common.txtToMp3(radioList) #文字生成语音 发送语音 print(radioList) return radioList
640?wx_fmt=gif 四、获取精美壁纸


壁纸我们从 必应 的官网抓取,必应的官网壁纸还是比较精美的。


至于具体的壁纸抓取 分析,相信聪明的你们肯定是知道的,我就直接贴代码咯。


class DataUtil():    def getBingPhoto(self, index):        # index 对应的是 必应 index天的壁纸        url = ' http://www.bing.com/HPImageArchive.aspx?format=js&idx=' + index + '&n=1&nc=1469612460690&pid=hp&video=1'        html = urllib.request.urlopen(url).read().decode('utf-8')
photoData = json.loads(html) # 这是壁纸的 url photoUrl = 'https://cn.bing.com' + photoData['images'][0]['url'] photoReason = photoData['images'][0]['copyright'] photoReason = photoReason.split(' ')[0] photo = urllib.request.urlopen(photoUrl).read()
# 下载壁纸刀本地 with open('./bing.jpg', 'wb') as f: # img = open_url(photoUrl) if photo: f.write(photo) print("图片已保存")
# 把壁纸的介绍写到壁纸上 # 设置所使用的字体 font = ImageFont.truetype("simhei.ttf",35) imageFile = "./bing.jpg" im1 = Image.open(imageFile) # 画图,把壁纸的介绍写到壁纸上 draw = ImageDraw.Draw(im1) draw.text((im1.size[0]/2.5, im1.size[1]-50), photoReason, (255, 255, 255), font=font) # 设置文字位置/内容/颜色/字体 draw = ImageDraw.Draw(im1) # Just draw it! # 另存图片 im1.save("./bing.jpg")
640?wx_fmt=gif 五、整合数据,配置定时任务


数据都获取到了,也登录了微信,现在我们就需要把这些信息发送给需要的人了。


这里需要注意的是:


1. 微信每条信息是有长度限制的


2. 微信在线需要单独占用一个线程,所以发送信息需要在另一个线程执行。


3. 定时任务的配置......想详细了解看https://blog.csdn.net/liao392781/article/details/80521194


wechat = WeChat() #这里是封装的 itchat# 开启微信登录线程,需要单独占个线程_thread.start_new_thread(wechat.login, ( ))
# 配置定时任务# 开启早间天气预报 定时任务schedule.every().day.at("7:20").do(wechat.dailyInfo)# 开启睡前故事 定时任务schedule.every().day.at("21:30").do(wechat.readStory)while True: schedule.run_pending() time.sleep(1)

微信登录方法

class WeChat():
def login(self): itchat.auto_login(hotReload=True) # 登录,会下载二维码给手机扫描登录,hotReload设置为True表示以后自动登录 itchat.send('hello my love', toUserName='filehelper') #发送信息给微信文件助手
friends = itchat.search_friends(name='好友昵称') # 获取微信好友列表 userName = friends[0]['UserName'] itchat.send('hello my love', toUserName=userName) # 发送信息给指定好友
itchat.run() # 让itchat一直运行

微信每日天气预报方法

class WeChat():# 推送每日早报    def dailyInfo(self):        print('dailyInfo do')        jiujiang = dataUtil.getWeatherData('九江')        # wechat.sendMessage(jiujiang, 'filehelper')        yfei = wechat.getFriend('好友昵称')        wechat.sendMessage(jiujiang, yfei)

微信发送睡前故事 和 精美壁纸方法

# 推送睡前故事    def readStory(self):        print('readStory do')        stroy = dataUtil.getBookInfo('./从你的全世界路过.txt')        dataUtil.getBingPhoto('0')        # wechat.sendMessage(stroy, 'filehelper')        # itchat.send_image('./bing.jpg',  'filehelper')        yfei = wechat.getFriend('好友昵称')
for txt in stroy: wechat.sendMessage(txt, yfei)
# 发送壁纸 itchat.send_image('./bing.jpg', toUserName=yfei)
Git 地址

https://github.com/zwwjava/python_capture/tree/master/venv/Include/wechat


入口文件: autoSendMessage.py


640?wx_fmt=gif

为了讨小姐姐欢心,咱也是拼了,实在不行,再介绍一个硬核的方式——用python画了颗心给小姐姐,视频如下:


2_04.png2_04.png2_04.png你学会了吗?2_02.png2_02.png2_02.png只能帮你到这了,我的小老弟2_06.png


顺便表白一下我的小姐姐~

640?wx_fmt=gif

640?wx_fmt=jpeg

粉丝福利:

加微信号(julyedufu77)是微信号不是微信公众号哦,并发送关键字“Python基础”即可0元学习七月在线精品课程《Python基础课程升级版》,限30名额,还剩6个。

640?wx_fmt=jpeg

欢迎投稿,投稿/合作:dashuju36@qq.com

如果您觉得文章不错,那就分享到朋友圈~


  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值