欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用Python實(shí)現(xiàn)校園通知更新提醒功能

 更新時(shí)間:2019年11月23日 09:28:20   作者:溫柔小豬  
今天小編就為大家分享一篇用Python實(shí)現(xiàn)校園通知更新提醒功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

前言

這個(gè)項(xiàng)目實(shí)已經(jīng)在一個(gè)月前已經(jīng)完成了,一直都想寫一篇博客來(lái)總結(jié)這個(gè)過(guò)程中遇到的一些問(wèn)題。但最近一個(gè)月來(lái)都比較忙,所以一直拖到了現(xiàn)在。

首先說(shuō)說(shuō)起因吧,我沒(méi)事的時(shí)候,總喜歡依次點(diǎn)開(kāi)學(xué)校主頁(yè)、教務(wù)處、圖書(shū)館以及學(xué)院的網(wǎng)站,看看有沒(méi)有什么新通知,雖然大多與我無(wú)關(guān)。恰逢最近正在學(xué)Python,經(jīng)常聽(tīng)到別人說(shuō)用Python寫爬蟲(chóng)很簡(jiǎn)單,但自己尚未接觸過(guò)爬蟲(chóng)。于是抱著試一試的心態(tài)看了幾篇關(guān)于Python爬蟲(chóng)的博客,發(fā)現(xiàn)實(shí)現(xiàn)起來(lái)的確很簡(jiǎn)單。于是,便一邊看著官方的文檔說(shuō)明,一邊看著別人的博客,終于完成了自己的第一次爬蟲(chóng)。

簡(jiǎn)介

使用urllib.request庫(kù)獲取到目標(biāo)url(各個(gè)網(wǎng)站的'更多通知'頁(yè))的源代碼,然后利用Python的re庫(kù)進(jìn)行正則匹配,提取到通知相關(guān)信息后,與文件中存取的上一次爬取到的信息進(jìn)行對(duì)比。

若檢測(cè)到有新的通知,則利用twilio庫(kù)向指定手機(jī)號(hào)碼發(fā)送SMS,利用smtplib庫(kù)向指定郵箱發(fā)送提醒信息。

此外,還具有發(fā)送日志以及異常日志的功能。

目前僅支持本校的通知提醒,后續(xù)會(huì)逐步提高項(xiàng)目的通用性。

源碼:

Github地址:School_Notice

準(zhǔn)備工作

安裝twilio庫(kù):pip install twilio

注冊(cè)twilio賬號(hào):Twilio

驗(yàn)證手機(jī)號(hào):用來(lái)接收短信提醒的號(hào)碼必須在twilio上進(jìn)行驗(yàn)證

遇到的問(wèn)題

郵件發(fā)送

若用名為msg的變量來(lái)保存郵件文本,則msg['From']以及msg['To']必須為實(shí)際的發(fā)件人地址,否則可能會(huì)出現(xiàn)異常:SMTPDataError(code, resp).如必須寫作:msg['From'] = 'xxxxx@qq.com'.我是使用的QQ郵箱來(lái)發(fā)郵件,至于其他郵箱需不需要這樣寫還不清楚。

原本想用一個(gè)for循環(huán)來(lái)實(shí)現(xiàn)多人發(fā)送,后來(lái)發(fā)現(xiàn)smtplib庫(kù)的sendmail方法支持多人發(fā)送,但參數(shù)應(yīng)為一個(gè)list,故可用str.split(',')將字符串轉(zhuǎn)為list。

我使用的是Windows下的Python,若計(jì)算機(jī)名為中文,則有可能會(huì)導(dǎo)致出現(xiàn)異常,可通過(guò)右擊此電腦->屬性,修改計(jì)算機(jī)名。

程序代碼中使用的郵箱密碼不是QQ密碼,應(yīng)在郵箱設(shè)置->賬戶->SMTP服務(wù)處,獲取授權(quán)碼。

其他問(wèn)題

有時(shí)候會(huì)接收不到Twilio發(fā)送的短信,給10086打電話也沒(méi)問(wèn)出個(gè)所以然,可能是因?yàn)槎绦胖杏忻舾性~(如:學(xué)校名),修改短信內(nèi)容后就可以了

對(duì)上述幾個(gè)網(wǎng)站的源碼使用re.findall后返回的列表中的每個(gè)元組中的元素的順序均為時(shí)間、標(biāo)題、鏈接,但對(duì)學(xué)生處網(wǎng)站的源碼正則匹配后的元素順序并不是按照上述順序的。所以應(yīng)單獨(dú)進(jìn)行調(diào)整,但直接修改一個(gè)元組中的元素,會(huì)出現(xiàn)異常:error:tuple' object does not support item assignment。

解決方法是:

if(subject_EN == 'snnu_xsc'):
 new_data = []
 for item in data:
  temp = (item[1], item[2], item[0])
  new_data.append(temp)
 data = new_data

Python3中的print函數(shù)是自動(dòng)換行的,若不需要自動(dòng)換行,則可寫作:print(str,end='')

不同網(wǎng)站的編碼格式可能不同,應(yīng)按照各自的編碼方式進(jìn)行解碼。若均采用utf-8的方式,則可能會(huì)出現(xiàn)各種編碼問(wèn)題,如:

UnicodeDecodeError: ‘utf-8' codec can't decode byte 0xc9 in position 167

解決方法是:

if find1 == -1 & find2 == -1:
 Coding = 'utf-8'
else:
 # 教務(wù)處網(wǎng)頁(yè)源碼編碼格式為為gbk
 # 學(xué)生處網(wǎng)頁(yè)源碼編碼格式為gb2312
 Coding = 'gbk'
data = response.read().decode(Coding)

Python程序打包為exe(Pyinstaller)

安裝及使用

使用pip install pywin32安裝pywin32

使用pip install PyInstaller安裝Pyinstaller

使用pyinstaller -F main.py即可將Python程序打包為exe程序

注意事項(xiàng)

打包之前應(yīng)將用到的第三方庫(kù)(此項(xiàng)目?jī)H用到Twilio)復(fù)制到與要打包的py文件同一目錄下。

可使用pyinstaller -F -i logo.ico main.py,為生成的exe程序添加圖標(biāo)

使用的ico文件像素不能過(guò)小,否則有可能出現(xiàn):打包后的程序圖標(biāo)只有在資源管理器中設(shè)置為以小圖標(biāo)查看的情況下才顯示的是自己的圖標(biāo),其他情況仍未默認(rèn)圖標(biāo)

使用截圖

以上這篇用Python實(shí)現(xiàn)校園通知更新提醒功能就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python confluent kafka客戶端配置kerberos認(rèn)證流程詳解

    Python confluent kafka客戶端配置kerberos認(rèn)證流程詳解

    這篇文章主要介紹了Python confluent kafka客戶端配置kerberos認(rèn)證流程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Django后臺(tái)管理系統(tǒng)的圖文使用教學(xué)

    Django后臺(tái)管理系統(tǒng)的圖文使用教學(xué)

    在本篇文章里小編給大家整理的是一篇關(guān)于Django后臺(tái)管理系統(tǒng)的圖文使用教學(xué)內(nèi)容,需要的朋友們參考下。
    2020-01-01
  • Python 學(xué)習(xí)筆記

    Python 學(xué)習(xí)筆記

    Python 基本概念等學(xué)習(xí)資料
    2008-12-12
  • python xlsxwriter模塊的使用

    python xlsxwriter模塊的使用

    這篇文章主要介紹了python xlsxwriter模塊的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • Django自定義列表 models字段顯示方式

    Django自定義列表 models字段顯示方式

    這篇文章主要介紹了Django自定義列表 models字段顯示方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • python3處理word文檔實(shí)例分析

    python3處理word文檔實(shí)例分析

    在本篇文章里小編給大家分享了一篇關(guān)于python3處理word文檔實(shí)例分析內(nèi)容,有興趣的朋友們可以參考下。
    2020-12-12
  • Pandas的Series結(jié)構(gòu)及常用操作實(shí)例

    Pandas的Series結(jié)構(gòu)及常用操作實(shí)例

    這篇文章主要介紹了Pandas的Series結(jié)構(gòu)及常用操作實(shí)例,Series序列,是一種一維的結(jié)構(gòu),類似于一維列表和ndarray中的一維數(shù)組,但是功能比他們要更為強(qiáng)大,Series由兩部分組成:索引index和數(shù)值values,需要的朋友可以參考下
    2023-07-07
  • 基于Python 中函數(shù)的 收集參數(shù) 機(jī)制

    基于Python 中函數(shù)的 收集參數(shù) 機(jī)制

    今天小編就為大家分享一篇基于Python 中函數(shù)的 收集參數(shù) 機(jī)制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python庫(kù)使用Fire庫(kù)生成命令行參數(shù)

    python庫(kù)使用Fire庫(kù)生成命令行參數(shù)

    Python Fire是一個(gè)開(kāi)源庫(kù),能把Python對(duì)象轉(zhuǎn)換為命令行界面,F(xiàn)ire庫(kù)是一個(gè)非常有用的工具,它可以幫助開(kāi)發(fā)人員創(chuàng)建命令行界面,并且可以將任何Python對(duì)象轉(zhuǎn)換為命令行界面,這篇文章主要介紹了python庫(kù)使用Fire庫(kù)生成命令行參數(shù),需要的朋友可以參考下
    2024-02-02
  • Langchain集成管理prompt功能詳解

    Langchain集成管理prompt功能詳解

    這篇文章主要為大家介紹了Langchain集成管理prompt功能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03

最新評(píng)論