Python 通過郵件自更新

服務器端定時執行程序,用以實現自動查詢指定股票信息,併發送到指定郵箱的功能。

import mail
import requests #使用requests包
import json #導入json模塊
import time #導入時間模塊
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

def get_content_list():
# 以下是某個新聞網站的行情api,返回json格式數據
    data = requests.get("https://forexdata.wallstreetcn.com/real?en_prod_code=XAGUSD,AUTD,XAUUSD,USOIL,US10YEAR,GBPUSD,EURUSD,USDJPY,USDCNH,USDOLLARINDEX,UK100INDEX,FRA40INDEX,GER30INDEX,000001,HKG33INDEX,JPN225INDEX&fields=prod_name,update_time,last_px,px_change,px_change_rate,price_precision")
#解析數據,獲取需要的內容
    injson = json.loads(data.text)['data']['snapshot']
#自己需要的行情代碼列表
    codelist = "XAGUSD,AUTD,XAUUSD,USOIL,US10YEAR,GBPUSD,EURUSD,USDJPY,USDCNH,USDOLLARINDEX,UK100INDEX,FRA40INDEX,GER30INDEX,000001,HKG33INDEX,JPN225INDEX"

    codelistar = codelist.split(',') #個人需要分割成list格式

    codelistar.reverse()#反轉順序
    print( " 更新時間        "+"\t"+" 品種列表"+"\t"+"漲跌幅度"+"\t"+"報價") #輸出標題
    for name in codelistar:
         timestr = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(injson[name][1]))
         data=(timestr +"\t"+injson[name][0]+"\t"+str(injson[name][4])+"  \t"+str(injson[name][2]))
         print(data)
    send(data)

#最後輸出打印出來

def send(content='nothing', toUser='[email protected]'):
    sender = '[email protected]'  # 發件人郵箱賬號
    num = '***************'  # 發件人郵箱密碼(當時申請smtp給的授權碼)
    msg = MIMEText('來自我的Python!', 'plain', 'utf-8')
    msg['From'] = formataddr([content, sender])
    msg['To'] = formataddr(['to you', 'you'])
    msg['Subject'] = 'from my server'
    try:
        server = smtplib.SMTP_SSL('smtp.qq.com', 465)
        # server.set_debuglevel(1)
        server.login(sender, num)
        server.sendmail(sender, [toUser], msg.as_string())
        server.quit()
        print("successfuly")
        return 1
    except Exception:
        print("send failed")
        return 0

get_content_list()

效果圖

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章