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 Ubuntu


from urllib import urlopen
from bs4 import BeautifulSoup
import re

url='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').string
    if '后天' in patchTwoDays:
        TC=tag.find('h1').string #时间
        T="\"" + TC + "\""
        print T
        WC=tag.find('p','wea').string #天气
        W="\"" + WC + "\""
        print W
        try:
            HC=tag.find('p','tem').find('span').string #最高温
            H="\"" + HC + "\""
            print H
            LC=tag.find('p','tem').find('i').string #最低温度
            L="\"" + LC + "\""
            print L
        except:
            #print("没有高温低温数据")
            pass
        FXC=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="[email protected]"
#_pwd="nphqgzgcbce"
#_to="[email protected]"

#receives=[
#    "[email protected]",
#    "1505567****@139.com",
#    "[email protected]",
#]

#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)

    # 调用短信发送接口,返回json
    smsResponse = acs_client.do_action_with_exception(smsRequest)

    # TODO 业务处理

    return smsResponse


if __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\"}",%nowTime
    pms = """{\"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 datetime


if sys.getdefaultencoding() != 'utf-8':
        reload(sys)
sys.setdefaultencoding('utf-8')

#apt-get install python-bs4 for Ubuntu


from urllib import urlopen
from bs4 import BeautifulSoup
import re

url='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 简单爬虫获取气象数据发送气象定时报-预报预警信息及时推送及阿里云短信群发接口..._第1张图片

 邮件推送测试结果

 python 简单爬虫获取气象数据发送气象定时报-预报预警信息及时推送及阿里云短信群发接口..._第2张图片

 

你可能感兴趣的:(python 简单爬虫获取气象数据发送气象定时报-预报预警信息及时推送及阿里云短信群发接口...)