但是过年回家这么说恐怕七大姑八大姨一定会“刨根问底”然后又是一顿血雨腥风...
所以小谷来一个神助攻!没有方法论的发对象都是耍流氓,今天教大家怎么用 Python 给心动的TA每天定时发早安或者晚安。
好了,直接进入今天的主题。
进群:700341555获取小编准备的Python入门学习资料吧!
年前脱单|教你用Python追到心仪女神~找对象环境
语言:Python3
编辑工具:Pycharm
导包
wxpy:操作微信的库。
requests:用来请求目标网站。
Timer:定时器,是 Thread 的派生类,用于在指定时间后调用一个方法。
<pre class="ql-align-justify" style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">from wxpy import *
import requests
from threading import Timer
</pre>
登录微信
Bot 对象,用于登陆和操作微信账号,涵盖大部分 Web 微信的功能。cache_path,设置当前会话的缓存路径,并开启缓存功能,为 None (默认) 则不开启缓存功能。开启缓存后可在短时间内避免重复扫码,缓存失效时会重新要求登陆。设为 True 时,使用默认的缓存路径 「wxpy.pkl」。
<pre class="ql-align-justify" style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">bot = Bot(cache_path=True)
</pre>
获取语句
从金山词霸每日一句接口获取语录,用 requests 请求 api 地址,返回英文美句和中文翻译。
<pre class="ql-align-justify" style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">def get_msg():
url = 'http://open.iciba.com/dsapi/' # 金山词霸每日一句 api 链接
html = requests.get(url)
content = html.json()['content'] # 获取每日一句英文语句
note = html.json()['note'] # 获取每日一句英文的翻译语句
return content, note
</pre>
发送语句
接下来把上面获取的语句发送给心动的人,输入你心动的人自己的微信昵称,注意:这里不是你对 TA 的备注,也不是 TA 的微信号,而是 TA 自己设置的微信昵称。我们需要每日发送一次,用定时器设置时间为一天的秒数:86400 秒。
<pre class="ql-align-justify" style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">def send_msg():
try:
msgs = get_msg()
content = msgs[0]
note = msgs[1]
my_friend = bot.friends().search(
u'机器人')[0] # 此处是对方自己的昵称,不是微信号,也不是你的备注。
my_friend.send(content) # 发送英文语句
my_friend.send(note) # 发送英文翻译
my_friend.send(u'来自 brucepk 的问候') # 自定义语句,根据自己情况更改
t = Timer(10, send_msg) # Timer(定时器)是 Thread 的派生类,用于在指定时间后调用一个方法。
t.start()
except BaseException:
my_friend = bot.friends().search(u'brucepk')[
0] # 发送不成功,则发送消息给自己,提醒消息发送失败
my_friend.send(u'消息发送失败')
</pre>
捕捉异常,如果发送失败的话,则发送消息给自己,提醒消息发送失败。
执行函数
最后运行主函数,即可大功告成。
<pre class="ql-align-justify" style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; font-family: Consolas, Menlo, Courier, monospace; font-size: 16px; white-space: pre-wrap; position: relative; line-height: 1.5; color: rgb(153, 153, 153); margin: 1em 0px; padding: 12px 10px; background: rgb(244, 245, 246); border: 1px solid rgb(232, 232, 232); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">if name == 'main':
send_msg()
</pre>
运行结果
年前脱单|教你用Python追到心仪女神~更高级的操作可以爬取图片网址,做成文字+图片的形式。
这里给大家提供两个,一个是情话一个是关于“我爱你”的图片(对文笔不是特别好的童鞋来说可以说是很贴心了)
http://www.binzz.com/yulu2/3588.html
年前脱单|教你用Python追到心仪女神~http://tieba.baidu.com/p/3108805355
年前脱单|教你用Python追到心仪女神~最后还要提一句,这样的程序肯定是要持续运行才能保证每天发送,那岂不是要一直开着程序?(可以,但没必要)放在服务器上,某云服务器可以试用半年~好了,赶紧去尝试一下散发程序员的魅力吧!
网友评论