前言 現在正是卡達世界盃激戰正酣的時候,每天都有各種各樣的新聞。而且,不同的球隊,隨著比賽的進程,關註的熱度也會發生翻天覆地的變化。今天我們就來獲取卡達世界的球隊熱搜榜,並製作自動發送郵件腳本,把這些數據發送到你的郵箱里。 開發環境 python 3.8 pycharm 2021.2 reque ...
前言
現在正是卡達世界盃激戰正酣的時候,每天都有各種各樣的新聞。而且,不同的球隊,隨著比賽的進程,關註的熱度也會發生翻天覆地的變化。
今天我們就來獲取卡達世界的球隊熱搜榜,並製作自動發送郵件腳本,把這些數據發送到你的郵箱里。
開發環境
- python 3.8
- pycharm 2021.2
- requests
- SMTP
代碼分為兩個部分
- 獲取熱搜榜
- 如何發送郵件
對於本篇文章有疑問的同學可以加【資料白嫖、解答交流群:753182387】
代碼實現
獲取卡達世界的球隊熱搜榜
發送請求
url = 'https://motion.baidu.com/api/kv?aid=fifa_bigdata&data={%22olympic_trend%22:{%22dataId%22:239,%22param%22:{%22pageSize%22:30,%22page%22:1}}}' response = requests.get(url) # <Response [200]>: 請求成功 json_data = response.json()
獲取數據
list = json_data['data']['olympic_trend']['data']['listData']['list'] for i in range(0, 30): index = list[i]['index'] name = list[i]['name'] num = list[i]['num'] logo = list[i]['logo'] query = list[i]['query'] print(index, name, num, logo, query)
實現自動發送郵件
自動化發送郵件SMTP介紹
- SMTP中文名為簡單郵件傳輸協議,是一種提供可靠且有效的電子郵件傳輸的協議,可以傳輸系統之間的郵件信息。
- SMTP是建立在FTP文件傳輸服務上的一種郵件服務,主要用於系統之間的郵件信息傳遞,並提供有關來信的通知。
- SMTP獨立於特定的傳輸子系統,且只需要可靠有序的數據流通道支持,SMTP的重要特性之一是其能跨越網路傳輸郵件,即“SMTP郵件中繼”。
- 使用SMTP,可實現相同網路處理進程之間的郵件傳輸,也可通過中繼器或網關實現某處理進程與其他網路之間的郵件傳輸。
開啟SMTP服務
登錄郵箱,點擊設置,點擊賬戶
將POP3/SMTP服務點擊為已開啟狀態;按照步驟生成授權碼,授權碼一般為16位。
按照以上步驟,SMTP服務很簡單就開啟好了。
發送郵件代碼
def sendEmail(title, content, received_mail) # 郵箱屬性配置 # 郵箱服務端 mailserver = 'smtp.qq.com' # 發件人-此郵箱是我隨便寫的 userName_SendMail = '[email protected]' # 郵箱發件授權碼-為發件人郵箱根據第四步生成的授權碼 userName_AuthCode = 'abcdefghijklmnop' # 定義郵件的接收者-我隨便寫的,若收件人較多,可用列表表示 received_mail =[received_mail] # 郵件中發送附件 # 附件配置郵箱 email = MIMEText(content, 'plain', 'utf-8') email['Subject'] = title # 定義郵件主題 email['From'] = userName_SendMail # 發件人 email['To'] = ','.join(received_mail) # 收件人(可以添加多個,若只有一個收件人,可直接寫郵箱號) # 發送郵件 smtp = smtplib.SMTP_SSL(mailserver,port=465) # QQ郵箱的埠號是465,其他郵箱的埠號可自行百度,非QQ郵箱,一般使用SMTP即可,不需要有SSL smtp.login(userName_SendMail, userName_AuthCode) smtp.sendmail(userName_SendMail, ','.join(received_mail), email.as_string()) smtp.quit() print('666')