python 简单爬虫获取气象数据发送气象定时报-预报预警信息及时推送及阿里云短信群发接口...
生活随笔
收集整理的這篇文章主要介紹了
python 简单爬虫获取气象数据发送气象定时报-预报预警信息及时推送及阿里云短信群发接口...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
!/usr/bin/python
#encoding=utf-8
#Author:Ruiy#
#python-bs4
#ilio
#///import sys
import datetime
nowTime="\"" + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + "\""
#print nowTime
addr="\"長沙\""if sys.getdefaultencoding() != 'utf-8':reload(sys)
sys.setdefaultencoding('utf-8')#apt-get install python-bs4 for Ubuntufrom urllib import urlopen
from bs4 import BeautifulSoup
import reurl='http://www.weather.com.cn/weather/101250101.shtml'
html=urlopen(url).read()
soup=BeautifulSoup(html,'html.parser',from_encoding='utf-8')#print soup.prettify()
#print soup.title#tagAfterTomorrow=soup.find('li',class_="sky skyid lv3")
#print tagAfterTomorrow#weather=tagAfterTomorrow.find_next('p',class_="wea").string
#print weather#temperatureHigh=tagAfterTomorrow.find_next('span').string
#print temperatureHigh#temperatureLow=tagAfterTomorrow.find_next('i').string
#print temperatureLow#windDirection=tagAfterTomorrow.find_next('span',class_='SE').string
#print windDirection#res_data=soup.findALL('script')
#print res_data
res_data=soup.find('ul','t clearfix')
#print res_data#print twoDays#h1s=soup.find_all('h1')
#for h1 in h1s:
# for li in h1.children:
# print h1.string
li_tag=res_data.findAll('li')
#print li_tag
#print 'bug/'#for i in li_tag:
# print i#print "/ruiy"#數據回值
for tag in li_tag:patchTwoDays=tag.find('h1').stringif '后天' in patchTwoDays:TC=tag.find('h1').string #時間T="\"" + TC + "\""print TWC=tag.find('p','wea').string #天氣W="\"" + WC + "\""print Wtry:HC=tag.find('p','tem').find('span').string #最高溫H="\"" + HC + "\""print HLC=tag.find('p','tem').find('i').string #最低溫度L="\"" + LC + "\""print Lexcept:#print("沒有高溫低溫數據")passFXC=tag.find('p','win').find('i').string #風向級數FX="\"" + FXC + "\""print FX#print "patch"#print(tag.find('h1').string) #時間#print(tag.find('p','wea').string) #天氣#try:# print(tag.find('p','tem').find('span').string) #最高溫# print(tag.find('p','tem').find('i').string) #最低溫#except:# print("沒有高溫低溫數據")# pass#print(tag.find('p','win').find('i').string) #風向級數#print('_______________ 分割線 ____________________')#else:# print 'no patch'#Email mess interface
#import smtplib
#from email.mime.text import MIMEText
#from email.utils import formataddr
#import time#_user="5160558@qq.com"
#_pwd="nphqgzgcbce"
#_to="1507@139.com"#receives=[
# "5160@qq.com",
# "1505567****@139.com",
# "374093@qq.com",
#]#for i in receives:
# msg=MIMEText("te")
# msg["Subject"]="dot't p"
# msg["Form"]=_user
# msg["To"]=i
# try:
# s = smtplib.SMTP_SSL("smtp.qq.com", 465)
# s.login(_user, _pwd)
# s.sendmail(_user, i, msg.as_string())
# s.quit()
# print("Success!")
# except smtplib.SMTPException,e:
# print ("Falied,%s" %e) #阿里短信接口
import sys
from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
from aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest
from aliyunsdkcore.client import AcsClient
import uuid
from aliyunsdkcore.profile import region_provider
from aliyunsdkcore.http import method_type as MT
from aliyunsdkcore.http import format_type as FT
import const"""
短信業務調用接口"""
try:reload(sys)sys.setdefaultencoding('utf8')
except NameError:pass
except Exception as err:raise err# 注意:不要更改
REGION = "cn-hangzhou"
PRODUCT_NAME = "Dysmsapi"
DOMAIN = "dysmsapi.aliyuncs.com"acs_client = AcsClient(const.ACCESS_KEY_ID, const.ACCESS_KEY_SECRET, REGION)
region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)def send_sms(business_id, phone_numbers, sign_name, template_code, template_param=None):smsRequest = SendSmsRequest.SendSmsRequest()# 申請的短信模板編碼,必填
smsRequest.set_TemplateCode(template_code)# 短信模板變量參數if template_param is not None:smsRequest.set_TemplateParam(template_param)# 設置業務請求流水號,必填。
smsRequest.set_OutId(business_id)# 短信簽名
smsRequest.set_SignName(sign_name)# 數據提交方式# smsRequest.set_method(MT.POST)# 數據提交格式# smsRequest.set_accept_format(FT.JSON)# 短信發送的號碼列表,必填。
smsRequest.set_PhoneNumbers(phone_numbers)# 調用短信發送接口,返回jsonsmsResponse = acs_client.do_action_with_exception(smsRequest)# TODO 業務處理return smsResponseif __name__ == '__main__':__business_id = uuid.uuid1()#plist=['13121172','15198367']pce=['1312272***','15055367****','15316']#print(__business_id)#params = "{\"code\":\"12345\",\"product\":\"云通信\"}"#params = {\"nowTime\":nowTime,\"addr\":\"長沙\",\"T\":\"12345\",\"W\":\"12345\",\"H\":\"12345\",\"L\":\"12345\",\"FX\":\"12345\"}"#params = {"nowTime":nowTime,"addr":addr,"T":T,"W":W,"H":H,"L":L,"FX":FX}#params = "{\"nowTime\":%s,\"addr\":\"云通信\",\"T\":\"12345\",\"W\":\"12345\",\"H\":\"12345\",\"L\":\"12345\",\"FX\":\"12345\",%nowTime}"#params="{\"nowTime\":%s,\"addr\":\"云通信\",\"T\":\"12345\",\"W\":\"12345\",\"H\":\"12345\",\"L\":\"12345\",\"FX\":\"12345\"}",%nowTimepms = """{\"nowTime\":%(nowTime01)s,\"addr\":%(addr01)s,\"T\":%(T01)s,\"W\":%(W01)s,\"H\":%(H01)s,\"L\":%(L01)s,\"FX\":%(FX01)s}"""params = pms % dict(nowTime01=nowTime,addr01=addr,T01=T,W01=W,H01=H,L01=L,FX01=FX)#print paramsop#params = "{\"nowTime\":\"12345\",\"addr\":\"云通信\",\"T\":\"12345\",\"W\":\"12345\",\"H\":\"12345\",\"L\":\"12345\",\"FX\":\"12345\"}"#print params#params = "{\"nowTime\":\"12345\",\"addr\":\"云通信\",\"T\":\"12345\",\"W\":\"12345\",\"H\":\"12345\",\"L\":\"12345\",\"FX\":\"12345\"}"for i in pce:#params = u'{"name":"wqb","code":"12345678","address":"bz","phone":"13000000000"}'print(send_sms(__business_id,i, "位溫", "SMS_1297439", params))
//預警數據采集,未完..
#!/usr/bin/python #encoding=utf-8 #Author:Ruiy# #python-bs4 #ilio #///import sys import datetimeif sys.getdefaultencoding() != 'utf-8':reload(sys) sys.setdefaultencoding('utf-8')#apt-get install python-bs4 for Ubuntufrom urllib import urlopen from bs4 import BeautifulSoup import reurl='http://www.hnqx.gov.cn/yjs.asp' html=urlopen(url).read() soup=BeautifulSoup(html,'html.parser',from_encoding='utf-8')res_data=soup.find_all('td') print res_data?阿里短信推送測試,因為只是測試推送的數據爬取間隔很短,正常使用預報是定時報,預警的功能實現中,預警的是有預警立即推送信息!!@
?郵件推送測試結果
?
?
總結
以上是生活随笔為你收集整理的python 简单爬虫获取气象数据发送气象定时报-预报预警信息及时推送及阿里云短信群发接口...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 随笔---ubuntu下通过ifstat
- 下一篇: RROR: Check hive‘s u