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()
python實現獲取天氣信息後自動登錄郵箱發送到指定郵件聯繫人
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.