溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何給用Python每天定時(shí)給女神發(fā)一句情話

發(fā)布時(shí)間:2021-10-28 18:27:34 來源:億速云 閱讀:219 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關(guān)如何給用Python每天定時(shí)給女神發(fā)一句情話,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

我的日記 4月23日 晴

你三天沒回我的消息,在我孜孜不倦地騷擾下你終于舍得回我了,你說‘nmsl’我想這一定是有什么含義吧!噢!我恍然大悟,原來是尼美舒利顆粒。

她知道我關(guān)節(jié)炎,讓我吃尼美舒利顆粒,她還是關(guān)心我的但是又不想顯現(xiàn)的那么熱情的。

天啊!她好高冷,我好像更喜歡她了呢!

你看,雖然女神經(jīng)常不理我,但是還是會(huì)偷偷地關(guān)心我,雖然她不直說,但是我都懂。

唯一的問題就是,我最近很忙,忙到都沒有時(shí)間去給女神發(fā)“早安”了。不可以!“早安”絕對(duì)不能斷,這是我對(duì)女神誠摯的愛,女神雖然不會(huì)回復(fù)我,但是她肯定都記在心里,不回復(fù)我肯定是在考驗(yàn)我!

作為一名無所不能的程序猿,我立刻就想到為什么不用Python爬取情話,然后每天定時(shí)發(fā)送給她呢?

爬取情話

選取情話資源

首先我們需要去網(wǎng)上找到合適的情話資源

分析網(wǎng)頁資源

1. 定位情話資源

鼠標(biāo)放在我們要爬取的情話上快速按下右鍵+檢查(元素)。

如何給用Python每天定時(shí)給女神發(fā)一句情話

先在就可以看到我們的情話在頁面中是什么位置了。

2. 定位標(biāo)簽

在開發(fā)者工具中,我們輕松的舊定位到了我們的情話的標(biāo)簽,就是上圖紅框里的內(nèi)容。

3. 分析請(qǐng)求方式

在剛才的界面(不要退出開發(fā)者模式)下刷新:

如何給用Python每天定時(shí)給女神發(fā)一句情話

在Network欄目下找到我們請(qǐng)求的那個(gè)資源,在他的Headers中找到這個(gè)資源請(qǐng)求的方式,這里是GET。

使用urllib庫獲取資源

1、安裝urllib庫

這一步是怕你服務(wù)器里沒有urllib2庫,等會(huì)兒會(huì)造成麻煩才添加上的,如果你沒有添加該庫,請(qǐng)百度添加方法。

2、請(qǐng)求資源網(wǎng)站

代碼:

import urllib.request

url = "http://www.1juzi.com/new/150542.html"
html = urllib.request.urlopen(url).read()
print(html)

結(jié)果:

......

<h2>??ììò???D??é?°</h2>
<div class="content"><div class="news"><script type="text/javascript">news1();</script></div>
<p>1?¢????·????òD?à?×???òaμ?????£?ó?D?à′?ì??μ???×??£</p>
<p>2?¢°?ê?ì¤??oì3?í?′?????£?°?ê?ò?éúò?êàú¤ú¤????£?°???£??ò2??êàíóé?£</p>
<p>3?¢ק??è??3£?óè??ò?êà?à°é£?óμ??è??3£??¤??ò?êà??°2?£</p>
<p>4?¢o??1ê?ò°D?£??ò?¤?±á?ò?±2×óμ?????£?′óó??????aê?£?2?????íá2??àD??£</p>
<p>5?¢?òoóà′??á???£??ò2?μ¢?ó??£??1?áóD±eè?μ¢?ó??£????ò2??êD?£??1ê??òà′μ¢?ó??°é?£</p>
<p>6?¢??μ???μ???ò??ì?ò?í2??a?ù′?£?óDμ???ê?μ?D?ì?£?ê?????±?á??ò£?ò??°?ò′ó2??á?a?ùμ??£?ùè?óDò???è??üè??òD??ê?é??μ???±????íê????£</p>
<p>7?¢???òμ??é?é?÷à?è¥?′o£2?òa?′à′??òa??à′?£</p>
<p>8?¢??ò?ìì???a??D?ì?£???ò??ì??±????D?ˉ£???ò??????a??μ£D??£óD??μ??D????o??£</p>
<p>9?¢2??ò?ùìy?é?è£?μ±?ò??è?£?òò?a??àá?12?×??£</p>
......

小問號(hào),你是否有很多朋友?

我們爬下來的都是亂碼,發(fā)給女神一堆亂碼,女神可能還會(huì)以為是我們給她發(fā)的暗語,說不定還要花時(shí)間去尋找解密方法,想想都累,不能這個(gè)樣子!

其實(shí)出現(xiàn)亂碼的原因主要網(wǎng)頁的編碼方式和我們爬取程序的編碼方式不一樣造成的,只要找到網(wǎng)頁的編碼方式就好。

3、設(shè)置解碼類型

有3種方式:

1.從網(wǎng)頁Content-Type中獲取編碼方式

2.第三方庫智能識(shí)別編碼,常用chardet等

3.猜測(cè)編碼

我們這里其實(shí)在請(qǐng)求頭的Content-Type里有編碼類型,但是為了保險(xiǎn)起見,也是為了能應(yīng)用到更多的資源網(wǎng)站,這里演示以下chardet的用法,猜測(cè)編碼的使用請(qǐng)自行百度。

chardet獲取編碼類型

代碼:

import urllib.request

import chardet
url = "http://www.1juzi.com/new/150542.html"
html = urllib.request.urlopen(url).read()
print("html頭中的charset:", chardet.detect(html))

結(jié)果:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/spider/Spider.py
html頭中的charset:{'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}
Process finished with exit code 0

Get?。?!編碼方式為GB2312!

設(shè)置解碼

代碼:

import urllib.request
import chardet

url = "http://www.1juzi.com/new/150542.html"
html = urllib.request.urlopen(url).read()
charset = chardet.detect(html).get("encoding")
htmlText = html.decode(charset,errors = 'ignore')
print(htmlText)

結(jié)果:

......<h2>每天一句小情話</h2><div class="content"><div class="news"><script type="text/javascript">news1();</script></div><p>1、將你放進(jìn)我心里最重要的位置,用心來刻你的名字。</p><p>2、愛是踏破紅塵望穿秋水;愛是一生一世冥冥輪回;愛你,我不問理由。</p><p>3、拽你入懷,予你一世相伴,擁你入懷,護(hù)你一世平安。</p><p>4、何止是野心,我預(yù)謀了一輩子的念想,從遇見你開始,不見黃土不死心。</p><p>5、我后來想了想,我不耽誤你,還會(huì)有別人耽誤你,那我不甘心,還是我來耽誤你吧。</p><p>6、見到你的那一刻我就不知所措,有的只是的心跳,是你改變了我,以前我從不會(huì)這樣的。假如有一個(gè)人能讓我心甘情愿地改變那就是你。</p><p>7、陪我到可可西里去看海不要未來只要你來。</p><p>8、每一天都為你心跳,每一刻都被你感動(dòng),每一秒都為你擔(dān)心。有你的感覺真好。</p>......

哦吼!搞定!

4、封裝代碼

剛才我們已經(jīng)實(shí)現(xiàn)了資源的獲取,但是這樣的代碼用起來太不方便了,我們把它封裝在方法里:

......
import urllib.request
import chardet

def getHtml(url):
    """
    獲取網(wǎng)頁html文本資源
    :param url: 網(wǎng)頁鏈接
    :return: 網(wǎng)頁文本資源
    """
    html = urllib.request.urlopen(url).read()
    charset = chardet.detect(html).get("encoding")
    htmlText = html.decode(charset, errors='ignore')
    return htmlText

解析網(wǎng)頁資源

解析網(wǎng)頁的話,需要第三方插件Beautiful Soup來提取 xml 和 HTML 中的數(shù)據(jù)。

獲取content節(jié)點(diǎn)內(nèi)容

我們想要的資源都在一個(gè)class為”content“的div節(jié)點(diǎn)下,我們現(xiàn)在先獲取這個(gè)節(jié)點(diǎn)的所有內(nèi)容。

部分代碼:

soup = BeautifulSoup(htmlText,"html.parser")
"獲取content節(jié)點(diǎn)的內(nèi)容"
div_node = soup.find('div', class_='content')
print(div_node.get_text)

結(jié)果:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/spider/Spider.py

<bound method Tag.get_text of <div class="content"><div class="news"><script type="text/javascript">news1();</script></div>

<p>1、將你放進(jìn)我心里最重要的位置,用心來刻你的名字。</p>
<p>2、愛是踏破紅塵望穿秋水;愛是一生一世冥冥輪回;愛你,我不問理由。</p>
<p>3、拽你入懷,予你一世相伴,擁你入懷,護(hù)你一世平安。</p>
<p>4、何止是野心,我預(yù)謀了一輩子的念想,從遇見你開始,不見黃土不死心。</p>
<p>5、我后來想了想,我不耽誤你,還會(huì)有別人耽誤你,那我不甘心,還是我來耽誤你吧。</p>
......

<u>本文地址:<a href="http://www.1juzi.com/new/150542.html">每天一句小情話</a>http://www.1juzi.com/new/150542.html</u>
<li class="page"><a href="/aiqingyulu/">上一頁</a><span class="current">1</span><a href="/new/150543.html">2</a><a href="/new/150541.html">下一頁</a></li>
</div>
Process finished with exit code 0

2.4.3. 獲取p節(jié)點(diǎn)內(nèi)容

上一步我們已經(jīng)獲取到了我們的主要內(nèi)容,然后總結(jié)可以看出我們想要的文本內(nèi)容在P節(jié)點(diǎn)中,那么現(xiàn)在就來獲取它。

部分代碼:

soup = BeautifulSoup(htmlText,"html.parser")
"獲取div節(jié)點(diǎn)的內(nèi)容"
div_node = soup.find('div', class_='content')
"獲取P節(jié)點(diǎn)內(nèi)容"
p_node = div_node.find_all('p')
for content in p_node:
print(content.get_text())

結(jié)果:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/spider/Spider.py

1、將你放進(jìn)我心里最重要的位置,用心來刻你的名字。
2、愛是踏破紅塵望穿秋水;愛是一生一世冥冥輪回;愛你,我不問理由。
3、拽你入懷,予你一世相伴,擁你入懷,護(hù)你一世平安。
4、何止是野心,我預(yù)謀了一輩子的念想,從遇見你開始,不見黃土不死心。
5、我后來想了想,我不耽誤你,還會(huì)有別人耽誤你,那我不甘心,還是我來耽誤你吧。
......
69、有時(shí),愛也是種傷害,殘忍的人句子大全http://Www.1juzI.coM/,選擇傷害別人,善良的人,選擇傷害自己。
......
Process finished with exit code 0

4、處理數(shù)據(jù)

注意一下第69劇,這里面有網(wǎng)站的鏈接,把這個(gè)一起發(fā)給女神不就露餡了么,現(xiàn)在得想辦法給她刪掉。同時(shí)情話前面的編號(hào)也得刪掉。

刪除特定標(biāo)簽

我們會(huì)查看一下數(shù)據(jù)就會(huì)發(fā)現(xiàn),所有的鏈接都是在U標(biāo)簽里的,那我們可以直接在獲取到div標(biāo)簽內(nèi)容后就把u標(biāo)簽刪掉

"刪除特定標(biāo)簽u"
[s.extract() for s in div_node('u')]

刪除序號(hào)

我們發(fā)現(xiàn),序號(hào)與情話之間是用頓號(hào)分割的,那么我們可以將每個(gè)P標(biāo)簽下的內(nèi)容用split分割并且取出第二個(gè)元素就好了。

部分代碼:

"獲取P節(jié)點(diǎn)內(nèi)容"
p_node = div_node.find_all('p')
for content in p_node:
    "以’、‘分割,并且取出第2個(gè)元素"
    text = content.get_text().split("、",1)[1]
    print(text)

結(jié)果:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/spider/Spider.py

將你放進(jìn)我心里最重要的位置,用心來刻你的名字。
愛是踏破紅塵望穿秋水;愛是一生一世冥冥輪回;愛你,我不問理由。
拽你入懷,予你一世相伴,擁你入懷,護(hù)你一世平安。
何止是野心,我預(yù)謀了一輩子的念想,從遇見你開始,不見黃土不死心。
我后來想了想,我不耽誤你,還會(huì)有別人耽誤你,那我不甘心,還是我來耽誤你吧。
......
Process finished with exit code 0

nice啊,到這一步你已經(jīng)把我們需要的情話都提取出來了!??!

封裝數(shù)據(jù)備用

這樣一句一句的也不好處理啊!不如把它放到list里,等下定時(shí)任務(wù)的時(shí)候可以用的時(shí)候取出來就好。

部分代碼:

sentenceList = list()
......
"獲取P節(jié)點(diǎn)內(nèi)容"
p_node = div_node.find_all('p')
for content in p_node:
    "以’、‘分割,并且取出第2個(gè)元素"
    text = content.get_text().split("、", 1)[1]
    "追加到list尾部"
    sentenceList.append(text)

print(sentenceList):

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/spider/Spider.py

['將你放進(jìn)我心里最重要的位置,用心來刻你的名字。', '愛是踏破紅塵望穿秋水;愛是一生一世冥冥輪回;愛你,我不問理由。', '拽你入懷,予你一世相伴,擁你入懷,護(hù)你一世平安。', '何止是野心,我預(yù)謀了一輩子的念想,從遇見你開始,不見黃土不死心。',  ......]

Process finished with exit code 0

5、封裝(爬蟲代碼最終)

爬蟲是做好了,但是總覺得乖乖的,我等下還得在其他地方用,不如這里以面向?qū)ο蟮乃枷氚雅老x封裝一下。

import urllib.request
from bs4 import BeautifulSoup
import chardet

def __getHtml(url):
    """
    私有方法:獲取網(wǎng)頁html文本資源
    :param url: 網(wǎng)頁鏈接
    :return: 網(wǎng)頁文本資源
    """
    html = urllib.request.urlopen(url).read()
    charset = chardet.detect(html).get("encoding")
    htmlText = html.decode(charset, errors='ignore')
    return htmlText

def __sloveHtml(htmlText):

    """
    私有方法:解析HtmlText
    :param htmlText: 傳入的資源
    """
    sentenceList = list()
    soup = BeautifulSoup(htmlText, "html.parser")
    "獲取content節(jié)點(diǎn)的內(nèi)容"
    div_node = soup.find('div', class_='content')

    "刪除特定標(biāo)簽u"
    [s.extract() for s in div_node('u')]

    "獲取P節(jié)點(diǎn)內(nèi)容"
    p_node = div_node.find_all('p')
    for content in p_node:

        "以’、‘分割,并且取出第2個(gè)元素"
        text = content.get_text().split("、", 1)[1]
        "追加到list尾部"
        sentenceList.append(text)
    return sentenceList

def getSentenceList(url):

    """
    Spider提供的公用方法,提供情話list
    :param url: 獲取情話的地址
    :return: 情話list
    """
    return __sloveHtml(__getHtml(url))

爬蟲總結(jié)

這一部分主要用到的類庫有:BeautifulSoup,urllib,chardet。

主要思想:封裝

手機(jī)短信發(fā)送發(fā)送

本來想用微信或者QQ發(fā)送來著,但是時(shí)隔兩年,qqbot、itchat、wxpy等第三方庫都失效了,沒辦法就來用手機(jī)短信發(fā)送好了。

1. Twilio

Twilio是一個(gè)做成開放插件的電話跟蹤服務(wù)(call-tracking service)

Twilio公司致力于幫助開發(fā)者在其應(yīng)用里融入電話、短信等功能,該公司周二又推出了一項(xiàng)稱為Twilio Client的新服務(wù),可幫助開發(fā)者整合靈活而低成本的網(wǎng)絡(luò)電話(VoIP)功能。

VoIP即Skype和谷歌電話等服務(wù)使用的技術(shù),要提供VoIP服務(wù)通常需要準(zhǔn)備相應(yīng)的基礎(chǔ)設(shè)備,而Twilio Client免除了開發(fā)者的這一麻煩,可讓他們便捷地在應(yīng)用里加入網(wǎng)絡(luò)電話元素。

安裝

安裝過程比較簡(jiǎn)單,直接pip就好:

sudo pip3 install twilio

等待安裝完成

Successfully built twilio
Installing collected packages: PyJWT, twilio
Successfully installed PyJWT-1.7.1 twilio-6.38.1

注冊(cè)并獲取三個(gè)重要參數(shù)

參考文章:https://zhuanlan.zhihu.com/p/67716042

簡(jiǎn)單代碼實(shí)現(xiàn)發(fā)送短信實(shí)驗(yàn)

代碼:

from twilio.rest import Client  # 導(dǎo)包
account_sid = '你的account_sid'
auth_token = '你的auth_token'
client = Client(account_sid, auth_token)
message = client.messages.create(
    from_='+×××××××××',
    body='親愛的H,以后我每天都會(huì)給你發(fā)送一條信息哦?。?!',
    to='你要發(fā)送到的手機(jī)號(hào)(以+86開頭)'
)
print(message.sid)

控制臺(tái)輸出:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/qqsend/Send.py
SMfe64f40f2ac24b8ca82121d57147312c
Process finished with exit code 0

手機(jī)接收短信:

如何給用Python每天定時(shí)給女神發(fā)一句情話

OK!到這里我們已經(jīng)簡(jiǎn)單實(shí)現(xiàn)了發(fā)送短信的功能,現(xiàn)在要去把這個(gè)功能封裝一下。

實(shí)現(xiàn)發(fā)送短信的功能

封裝代碼:

from twilio.rest import Client  # 導(dǎo)包

def sendSMSMsg(content, tel):

    """
        向某個(gè)手機(jī)號(hào)發(fā)送短信內(nèi)容
    :param content: 短信內(nèi)容
    :param tel: 手機(jī)號(hào)
    """
    account_sid = '你的account_sid'
    auth_token = '你的auth_token'
    client = Client(account_sid, auth_token)
    client.messages.create(
        from_='+18634171608',
        body=content,
        to=tel
    )
    print('Send :', content, 'to tel:', tel, 'syccessfully!!!')
if __name__ == '__main__':
    sendSMSMsg("Hello?" ,"+×××××××××")

測(cè)試結(jié)果:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/qqsend/Send.py
Send : Hello? to tel: +8618436354553 syccessfully!!!
Process finished with exit code 0

手機(jī)接收短信:

如何給用Python每天定時(shí)給女神發(fā)一句情話

發(fā)送短信總結(jié)

  1. 注冊(cè)twilio

  2. 獲取三個(gè)參數(shù):account_sid,auth_token,TRIAL NUMBER

  3. 引入twilio

  4. 設(shè)置你要發(fā)送到的手機(jī)號(hào)和內(nèi)容

操作還算是比較簡(jiǎn)單的,這部分主要用到twilio庫。

定時(shí)發(fā)送短信

這一步算是我們的主程序了,在這一部分里,我們要使用之前的代碼先獲取情話list,再設(shè)置定時(shí)任務(wù),每天固定的時(shí)間點(diǎn)把短信發(fā)到女神手機(jī)上。

Python定時(shí)任務(wù)

Python 中的定時(shí)任務(wù)框架還挺多的,我們現(xiàn)在的需求是每天早上8點(diǎn)鐘執(zhí)行一個(gè)任務(wù),在不到這個(gè)時(shí)間的時(shí)候不發(fā)送信息,為了簡(jiǎn)便理解,我打算直接循環(huán)掃描系統(tǒng)當(dāng)前時(shí)間,如果到了我們需要的那個(gè)時(shí)間點(diǎn),就發(fā)送,不到的時(shí)候就一直掃描

代碼實(shí)現(xiàn)

import time
while True:
    # 刷新
    time_now = time.strftime("%H:%M:%S", time.localtime())
    # 此處設(shè)置每天定時(shí)的時(shí)間
    if time_now == "15:29:00":
        # 需要執(zhí)行的動(dòng)作
        print('定時(shí)任務(wù)執(zhí)行一次')
        time.sleep(2)  # 因?yàn)橐悦攵〞r(shí),所以暫停2秒,使之不會(huì)在1秒內(nèi)執(zhí)行多次

結(jié)果:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/DoWork.py

定時(shí)任務(wù)執(zhí)行一次
Traceback (most recent call last):
File "/home/baldwin/PycharmProjects/IAmADog/DoWork.py", line 7, in <module>
    time_now = time.strftime("%H:%M:%S", time.localtime())
KeyboardInterrupt
Process finished with exit code 1

我是15:28:00的時(shí)候運(yùn)行程序的,在設(shè)置時(shí)刻確實(shí)是執(zhí)行了程序。

下面的異常是因?yàn)槲沂謩?dòng)退出了程序,這里不用管他。

具體實(shí)現(xiàn)發(fā)送情話

我們這里整理一下具體需求:

1.定時(shí)間點(diǎn)發(fā)送(上面已經(jīng)實(shí)現(xiàn)了)

2.每次發(fā)送的時(shí)候從list中取出一個(gè)句子,下一次取出下一條,不能重復(fù)

3.list中的句子發(fā)送完畢之后要發(fā)短信通知我

取句子

思路:設(shè)置一個(gè)全局變量index,代表著下一條要發(fā)送的句子的下標(biāo),每次發(fā)送短信后,下標(biāo)要增加1

發(fā)送完畢通知管理員

思路:每次進(jìn)入任務(wù)但是發(fā)送短信之前都要比較index的值與list的長(zhǎng)度(現(xiàn)在想起來,設(shè)計(jì)程序的時(shí)候用棧來儲(chǔ)存數(shù)據(jù)會(huì)更好),如果index已經(jīng)越界,直接給管理員發(fā)短信通知。

實(shí)現(xiàn)

from spider import Spider
from send import Send
import time
TIME_TO_DO = '08:30:00'  # 發(fā)送時(shí)間點(diǎn)
MSG_SUFFIX = '\n來自你的小可愛——Baldwin'  # 短信后綴
SOURCE_URL = 'http://www.1juzi.com/new/150542.html'  # 情話資源地址
SEND_TO_TEL = '+8618436354553'  # 女神的手機(jī)號(hào)
SEND_TO_ME = '舔狗,給女神發(fā)的短信已經(jīng)用光了,快來更新!??!'
MY_TEL = '+8618436354553'  # 舔狗手機(jī)號(hào)
index = 0  # 下一條短信的下標(biāo)
sentenceList = Spider.getSentenceList(SOURCE_URL)  # 情話列表
while True:
    # 刷新
    time_now = time.strftime("%H:%M:%S", time.localtime())
    # 此處設(shè)置每天定時(shí)的時(shí)間
    if time_now == TIME_TO_DO:
        # 需要執(zhí)行的動(dòng)作
        # 判斷當(dāng)前l(fā)ist有沒有用光
        if index >= len(sentenceList):
            # 用光了就短信通知我
            Send.sendSMSMsg(SEND_TO_ME, MY_TEL)
            # 跳出
            break
        # 給女神發(fā)短信
        content = sentenceList[index] + MSG_SUFFIX
        Send.sendSMSMsg(content, SEND_TO_TEL)
        # 下標(biāo)加一
        index += 1
        # 因?yàn)橐悦攵〞r(shí),所以暫停2秒,使之不會(huì)在1秒內(nèi)執(zhí)行多次
        time.sleep(2)

debug模式下的各項(xiàng)測(cè)試:

短信發(fā)送測(cè)試

在idea debug模式下可以對(duì)time_now參數(shù)進(jìn)行設(shè)置,把它設(shè)置成我們?cè)谇懊嬉l(fā)送短信的那個(gè)時(shí)間點(diǎn),成功進(jìn)行了短信發(fā)送:

如何給用Python每天定時(shí)給女神發(fā)一句情話

管理員通知測(cè)試

同樣的在debug模式下,設(shè)置index的值為len(sentenceList),程序進(jìn)入通知管理員模塊中,這里不再演示。

封裝

from spider import Spider
from send import Send
import time
TIME_TO_DO = '08:30:00'  # 發(fā)送時(shí)間點(diǎn)
MSG_SUFFIX = '\n來自你的小可愛——Baldwin'  # 短信后綴
SOURCE_URL = 'http://www.1juzi.com/new/150542.html'  # 情話資源地址
SEND_TO_TEL = '+8618436354553'  # 女神的手機(jī)號(hào)
SEND_TO_ME = '舔狗,給女神發(fā)的短信已經(jīng)用光了,快來更新!??!'
MY_TEL = '+8618436354553'  # 舔狗手機(jī)號(hào)

def doSend():
    index = 0  # 下一條短信的下標(biāo)
    sentenceList = Spider.getSentenceList(SOURCE_URL)  # 情話列表
    while True:
        # 刷新
        time_now = time.strftime("%H:%M:%S", time.localtime())
        # 此處設(shè)置每天定時(shí)的時(shí)間
        if time_now == TIME_TO_DO:
            # 需要執(zhí)行的動(dòng)作
            # 判斷當(dāng)前l(fā)ist有沒有用光
            if index >= len(sentenceList):
                # 用光了就短信通知我
                Send.sendSMSMsg(SEND_TO_ME, MY_TEL)
                # 跳出
                break
            # 給女神發(fā)短信
            content = sentenceList[index] + MSG_SUFFIX
            Send.sendSMSMsg(content, SEND_TO_TEL)
            # 下標(biāo)加一
            index += 1
            # 因?yàn)橐悦攵〞r(shí),所以暫停2秒,使之不會(huì)在1秒內(nèi)執(zhí)行多次
            time.sleep(2)

# 主程序入口
if __name__ == '__main__':
    doSend()

小總結(jié)

這部分主要用到的模塊:time,然后記得要把前兩個(gè)我們自己做的模塊導(dǎo)入進(jìn)來。

總結(jié)

這個(gè)程序相對(duì)來說還算是比較容易的,只要跟著文章一步步來基本上不互出問題。

最后只要運(yùn)行我們最后一個(gè)模塊中主程序入口就好了,你也可以按照自己需求修改配置達(dá)到不同的效果。

我現(xiàn)在就去告訴女神去。

如何給用Python每天定時(shí)給女神發(fā)一句情話

嘿嘿!女神秒回的,開心!

以上就是如何給用Python每天定時(shí)給女神發(fā)一句情話,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI