真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

創(chuàng)新互聯(lián)建站專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、冷水灘網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為冷水灘等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

我的日記 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庫

這一步是怕你    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

news1();


1、將你放進(jìn)我心里最重要的位置,用心來刻你的名字。


2、愛是踏破紅塵望穿秋水;愛是一生一世冥冥輪回;愛你,我不問理由。


3、拽你入懷,予你一世相伴,擁你入懷,護(hù)你一世平安。


4、何止是野心,我預(yù)謀了一輩子的念想,從遇見你開始,不見黃土不死心。


5、我后來想了想,我不耽誤你,還會(huì)有別人耽誤你,那我不甘心,還是我來耽誤你吧。


......

本文地址:下一頁


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)把我們需要的情話都提取出來了!?。?/p>

封裝數(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ò)電話元素。

安裝

安裝過程比較簡單,直接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

簡單代碼實(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)簡單實(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?" ,"+×××××××××")

測試結(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)容

操作還算是比較簡單的,這部分主要用到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ā)送信息,為了簡便理解,我打算直接循環(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 
    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的長度(現(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)測試:

短信發(fā)送測試

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

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

管理員通知測試

同樣的在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)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當(dāng)前題目:如何給用Python每天定時(shí)給女神發(fā)一句情話
新聞來源:http://weahome.cn/article/ggogpd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部