Python如何自動(dòng)獲取目標(biāo)網(wǎng)站最新通知
不管是一名學(xué)生,亦或是一名員工,我們都需要時(shí)刻注意學(xué)校或公司網(wǎng)站的通知,盡量做到即時(shí)獲取最新消息。
大部分博客或數(shù)據(jù)資源網(wǎng)站都會(huì)有自己的RSS提示系統(tǒng),便于將網(wǎng)站的最新信息及時(shí)推送給需要的用戶,而用戶也可以通過RSS閱讀器來即時(shí)地獲取到目標(biāo)網(wǎng)站的最新內(nèi)容。
由于學(xué)校或公司網(wǎng)站服務(wù)對象的特殊性和局限性,一般不會(huì)建立自己的RSS系統(tǒng)。
作為優(yōu)秀的人兒,我們可以建立自己的RSS提示系統(tǒng)。
這里介紹了如何使用Python和常用的計(jì)算機(jī)小程序來構(gòu)建一個(gè)RSS提示系統(tǒng),做到定時(shí)自動(dòng)檢測目標(biāo)網(wǎng)站發(fā)布的通知,并即時(shí)發(fā)送提示郵件。
本期文章設(shè)計(jì)RSS提示系統(tǒng)的主要思路是:
- 爬取目標(biāo)網(wǎng)站內(nèi)容,建立本地已有通知數(shù)據(jù)庫;
- 模擬smtp服務(wù)器,建立郵件發(fā)送系統(tǒng);
- 解析檢測目標(biāo)網(wǎng)站發(fā)布的通知,若有新內(nèi)容,則更新數(shù)據(jù)庫并發(fā)送提示郵件;
- 制定計(jì)劃任務(wù)實(shí)現(xiàn)定時(shí)自動(dòng)執(zhí)行Python腳本程序。
1.建立通知數(shù)據(jù)庫
這一步的目的是爬取目標(biāo)網(wǎng)站已經(jīng)發(fā)布的通知的數(shù)據(jù),并進(jìn)行存儲(chǔ),從而建立與該目標(biāo)網(wǎng)站內(nèi)容相對應(yīng)的本地?cái)?shù)據(jù)庫。
考慮到數(shù)據(jù)庫中的數(shù)據(jù)將是辨別和獲取一則新通知的唯一方法,因此所建立的數(shù)據(jù)庫將存儲(chǔ)每一條通知的標(biāo)題、發(fā)布日期和訪問鏈接。
第一步使用到的模塊有urllib、BeautifulSoup和sqlite3模塊。其中,通過urllib模塊爬取目標(biāo)網(wǎng)頁html數(shù)據(jù);通過BeautifulSoup模塊解析網(wǎng)頁數(shù)據(jù)、爬取網(wǎng)頁內(nèi)容;通過sqlite3模塊建立目標(biāo)網(wǎng)站已有通知數(shù)據(jù)庫。
該步主要代碼展示如下。
2.建立郵件發(fā)送系統(tǒng)
這一步的目的是使用Python標(biāo)準(zhǔn)庫模塊smtplib來訪問網(wǎng)絡(luò),創(chuàng)建一個(gè)發(fā)送電子郵件的功能。
由于我們大部分人的計(jì)算機(jī)并沒有建立自己的郵件服務(wù)器,因此需借助第三方服務(wù)器來模擬郵件發(fā)送。
常用的有谷歌郵件系統(tǒng)、網(wǎng)易郵件系統(tǒng)和QQ郵件系統(tǒng),如QQ郵件系統(tǒng)的SMTP服務(wù)器和端口號(hào)分別為smtp.qq.com和465。
該步主要代碼展示如下。
在這個(gè)示例中,使用了Python標(biāo)準(zhǔn)庫中的email模塊將電子郵件信息進(jìn)行了格式化,主要包括郵件的主題與發(fā)件人、收件人郵箱昵稱和郵件內(nèi)容等信息。
3.解析檢測目標(biāo)網(wǎng)站通知
前面兩步,已經(jīng)完成了目標(biāo)網(wǎng)站已有通知數(shù)據(jù)庫和郵件發(fā)送系統(tǒng)的建立,第三步要完成的工作,主要由兩部分組成。
一是,利用第一步使用的urllib、BeautifulSoup模塊解析目標(biāo)網(wǎng)站內(nèi)容數(shù)據(jù),并與前面建立的數(shù)據(jù)庫進(jìn)行對比檢測。
二是,若檢測到目標(biāo)網(wǎng)站有新的通知,則將新通知數(shù)據(jù)插入到數(shù)據(jù)庫中,然后,發(fā)送提示電子郵件。
該步主要代碼展示如下。
在這個(gè)示例中,只選取了最新的一條通知發(fā)送了電子郵件提示,具體郵件信息可自己設(shè)定。
4.制定計(jì)劃任務(wù)
前面三步,已經(jīng)完成了使用Python獲取目標(biāo)網(wǎng)站最新通知,并發(fā)送提示電子郵件的腳本程序。
在這一步,將使用Windows自帶的DOS命令框架和任務(wù)計(jì)劃程序去每小時(shí)自動(dòng)運(yùn)行一次Python腳本,實(shí)現(xiàn)自動(dòng)更新通知的目的。
首先,需要編寫一個(gè)cmd命令文件,方便在DOS框架下執(zhí)行Python腳本。
主要代碼展示如下:
@echo off # 關(guān)閉回顯 cd C:\demo # 找到Python腳本文件的路徑 python Python.py # 執(zhí)行Python腳本文件
最后,使用任務(wù)計(jì)劃程序制定一個(gè)任務(wù),可設(shè)定為每隔一小時(shí)自動(dòng)運(yùn)行一次cmd命令文件。
總結(jié)
到此這篇關(guān)于Python如何自動(dòng)獲取目標(biāo)網(wǎng)站最新通知的文章就介紹到這了,更多相關(guān)python自動(dòng)獲取最新通知內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux下用Python腳本監(jiān)控目錄變化代碼分享
這篇文章主要介紹了Linux下用Python腳本監(jiān)控目錄變化代碼分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-05-05淺談PyQt5 的幫助文檔查找方法,可以查看每個(gè)類的方法
今天小編就為大家分享一篇淺談PyQt5 的幫助文檔查找方法,可以查看每個(gè)類的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python接入MySQL實(shí)現(xiàn)增刪改查的實(shí)戰(zhàn)記錄
這篇文章主要給大家介紹了關(guān)于Python接入MySQL實(shí)現(xiàn)增刪改查的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03徹底吃透理解Python基礎(chǔ)33個(gè)關(guān)鍵字詳細(xì)教程
這篇文章主要為大家介紹了徹底吃透理解Python中33個(gè)關(guān)鍵字的詳細(xì)教程,有需要打好Python基礎(chǔ)的同學(xué)可以借鑒參考下,希望能成為您成功路上的一塊墊腳石2021-10-10關(guān)于Pycharm無法debug問題的總結(jié)
今天小編就為大家分享一篇關(guān)于Pycharm無法debug問題的總結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01對django 2.x版本中models.ForeignKey()外鍵說明介紹
這篇文章主要介紹了對django 2.x版本中models.ForeignKey()外鍵說明介紹,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03