python實現獲取天氣信息後自動登錄郵箱發送到指定郵件聯繫人

import requests,bs4,urllib,os
from selenium import webdriver
from time import sleep

#獲取當天本地天氣預報
#URL:http://www.weather.com.cn/weather/101180101.shtml
resWeather = urllib.request.urlopen('http://www.weather.com.cn/weather/101180101.shtml')
resWeatherHtml = str(resWeather.read(),'utf-8')


#獲取天氣信息
bs4Weather = bs4.BeautifulSoup(resWeatherHtml)
soupCity = bs4Weather.select('input[id="hidden_title"]')


#拼接郵件內容
maileNeiRong = "親愛的,今天鄭州的天氣是:     "+'\n'+soupCity[0].get('value')+"!"+'\n'+" 今天有個好心情!"+'\n''\n''\n'+'         愛你的人!'
print(maileNeiRong)

#由於多次訪問163郵箱需要經過驗證碼驗證,現在由hao123轉到163郵箱
browserHao123_163Email = webdriver.Firefox()
browserHao123_163Email.get('https://www.hao123.com/')

#獲取hao123主頁的句柄
handle_hao123 = browserHao123_163Email.current_window_handle

browserHao123_163Email.find_element_by_id('mail').click() 
browserHao123_163Email.find_element_by_id('mailName').clear()
browserHao123_163Email.find_element_by_id('mailName').send_keys('郵箱用戶名')
browserHao123_163Email.find_element_by_id('mailPwd').clear()
browserHao123_163Email.find_element_by_id('mailPwd').send_keys('郵箱密碼')
browserHao123_163Email.find_element_by_id('mailSubmit').click() 

sleep(5)
#在表單裏面操作完畢後,無論頁面是否進行跳轉,必須有退出表單的操作
browserHao123_163Email.switch_to_default_content() 

"""
#自動登錄163郵箱,不經過hao123
#http://mail.163.com/
browser163Email = webdriver.Firefox()
browser163Email.get('http://mail.163.com/')

browser163Email.switch_to_frame('x-URS-iframe')#切換frame(iframe)


#輸入用戶名和密碼登錄郵箱
browser163Email.find_element_by_name('email').clear()
browser163Email.find_element_by_name('email').send_keys('peng_zhi198976')
browser163Email.find_element_by_name('password').clear()
browser163Email.find_element_by_name('password').send_keys('pengzhi198976')
browser163Email.find_element_by_id('dologin').click()  
sleep(5)
#在表單裏面操作完畢後,無論頁面是否進行跳轉,必須有退出表單的操作
browser163Email.switch_to_default_content() 


#給指定郵件地址發送天氣郵件
browser163Email.find_element_by_id('_mail_component_70_70').click()#點擊“寫信”,頁面跳轉到寫信頁面 
sleep(5)

#發送郵件地址
browserHao123_163Email.find_element_by_class_name('nui-editableAddr-ipt').clear()
browserHao123_163Email.find_element_by_class_name('nui-editableAddr-ipt').send_keys('目的郵箱')

#發送郵件主題,ebElement_*對象的列表
browserHao123_163Email.find_elements_by_class_name('nui-ipt-input')[2].clear()
browserHao123_163Email.find_elements_by_class_name('nui-ipt-input')[2].send_keys('天氣預報')

#填寫郵件內容,由於正文編輯存在表單,先切換表單
frame = browserHao123_163Email.find_element_by_class_name("APP-editor-iframe")#如果ifram有id或者name屬性時可以直接切換
browserHao123_163Email.switch_to_frame(frame)
browserHao123_163Email.find_element_by_class_name('nui-scroll').clear()
browserHao123_163Email.find_element_by_class_name('nui-scroll').send_keys(maileNeiRong)

#在表單裏面操作完畢後,無論頁面是否進行跳轉,必須有退出表單的操作
browserHao123_163Email.switch_to_default_content()

browserHao123_163Email.find_elements_by_class_name('nui-btn-text')[-2].click()


"""
#給指定郵件地址發送天氣郵件
all_handles = browserHao123_163Email.window_handles
#多窗口,根據窗口句柄的再判斷,切換到163窗口
for handle in all_handles:
    if handle != handle_hao123:
        browserHao123_163Email.switch_to_window(handle)



browserHao123_163Email.find_elements_by_class_name('oz0')[1].click()#點擊“寫信”,頁面跳轉到寫信頁面 
sleep(5)

#發送郵件地址
browserHao123_163Email.find_element_by_class_name('nui-editableAddr-ipt').clear()
browserHao123_163Email.find_element_by_class_name('nui-editableAddr-ipt').send_keys('目的郵箱')

#發送郵件主題,ebElement_*對象的列表
browserHao123_163Email.find_elements_by_class_name('nui-ipt-input')[2].clear()
browserHao123_163Email.find_elements_by_class_name('nui-ipt-input')[2].send_keys('天氣預報')

#填寫郵件內容,由於正文編輯存在表單,先切換表單
frame = browserHao123_163Email.find_element_by_class_name("APP-editor-iframe")#如果ifram有id或者name屬性時可以直接切換
browserHao123_163Email.switch_to_frame(frame)
browserHao123_163Email.find_element_by_class_name('nui-scroll').clear()
browserHao123_163Email.find_element_by_class_name('nui-scroll').send_keys(maileNeiRong)

#在表單裏面操作完畢後,無論頁面是否進行跳轉,必須有退出表單的操作
browserHao123_163Email.switch_to_default_content()

browserHao123_163Email.find_elements_by_class_name('nui-btn-text')[-2].click()

發佈了32 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章