import requests
import smtplib
import schedule
import time
from bs4 import beautifulsoup
from email.mime.text import mimetext
from email.header import header
#匯入模組,沒有的自己去裝。
account =
input()
password =
input
('請輸入你的密碼:'
)receiver =
input()
#獲取郵箱密碼,密碼是qq郵箱授權碼,不是qq密碼
defweather_spider()
:#這個函式作用是爬取天氣資訊
headers=
#表頭,如果沒有容易爬不到
url=
''#中國天氣網中我的地點的天氣資訊的**,你可以複製到瀏覽器換成你的地點,然後再複製過來**,這樣天氣資訊就是那裡的。
res=requests.get(url,headers=headers)
#返回物件
res.encoding=
'utf-8'
#網頁用的utf——8編碼,所以在這裡要生明一下
soup=beautifulsoup(res.text,
'html.parser'
)#返回網頁資訊
tem1= soup.find(class_=
'tem'
) weather1= soup.find(class_=
'wea'
)#查詢天氣資訊
tem=tem1.text
weather=weather1.text
return tem,weather
#使用return返回值,把資訊儲存,為了後面呼叫
defsend_email
(tem,weather)
:#這個函式的作用是傳送資訊
global account,password,receiver
mailhost=
'smtp.qq.com'
#把qq郵箱的伺服器位址賦值到變數mailhost上,位址應為字串格式
qqmail = smtplib.smtp(
)#例項化乙個smtplib模組裡的smtp類的物件,這樣就可以呼叫smtp物件的方法和屬性了
qqmail.connect(mailhost,25)
#連線伺服器,第乙個引數是伺服器位址,第二個引數是smtp埠號。
#以上,皆為連線伺服器。
qqmail.login(account,password)
#登入郵箱,第乙個引數為郵箱賬號,第二個引數為郵箱密碼
content= tem+weather
#爬取的天氣資訊
message = mimetext(content,
'plain'
,'utf-8'
)#例項化乙個mimetext郵件物件,該物件需要寫進三個引數,分別是郵件正文,文字格式和編碼
subject =
'今日天氣預報'
message[
'subject'
]= header(subject,
'utf-8'
)#在等號的右邊是例項化了乙個header郵件頭物件,該物件需要寫入兩個引數,分別是郵件主題和編碼,然後賦值給等號左邊的變數message['subject']。
try:
#開始傳送
qqmail.sendmail(account, receiver, message.as_string())
print
('郵件傳送成功'
)except
:print
('郵件傳送失敗'
) qqmail.quit(
)def
job():
#建立傳送函式
print
('開始一次任務'
) tem,weather = weather_spider(
)#將爬取的天氣資訊的返回值賦值給tem,weather,使傳送郵件的函式呼叫
send_email(tem,weather)
#給傳送郵件的函式的變數賦值,並且呼叫該函式
print
('任務完成'
)schedule.every(
).day.at(
"10:00"
).do(job)
#設定傳送週期,這個是每天10點傳送,不過前提是需要電腦一直執行,要不然就需要把這個函式掛在遠端雲伺服器,我正在研究應該怎麼弄。
while
true
: schedule.run_pending(
) time.sleep(1)
#while true可以讓程式在不終止的前提下一直執行下去
固定時間倒計時
我所說的這個固定時間是每天晚上20 45,然後根據這個20 45設定倒計時。下面貼 html 距離銷售還剩餘 css 我不貼了 最重要的js 顧名思義 倒計時就是用終點的時間減去現在的時間 這裡呢我將終點的時間封裝成了乙個函式 function if date1 10 return year mon...
crontab固定時間執行用法
cron是乙個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。1 直接用crontab命令編輯 cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些引數與說明 crontab u 設定某個使用者的cron服務,一般root使用者在執行這個命令的時候需要此引數 ...
Timer定時器每天的固定時間執行
在網上看了好多介紹定時任務的方法,但是在使用的時候,如果當前時間是9 00,定時任務執行時間是8 59 就會造成在9點執行的程式的時候直接執行定時器中的方法。tip 定時器超時還執行。如下 解決了這個問題 public class sandtimer timer t new timer timert...