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="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) # 调用短信发送接口,返回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****','']
#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 简单爬虫获取气象数据发送气象定时报-预报预警信息及时推送及阿里云短信群发接口的更多相关文章
- python 阿里云短信群发推送
本篇文章是使用Python的Web框架Django提供发送短信接口供前端调用,Python版本2.7 阿里云入驻.申请短信服务.创建应用和模板等步骤请参考:阿里云短信服务入门 1.下载sdk 阿里云短 ...
- 移动端获取短信验证码java实现——阿里云短信服务
需求:移动端输入手机号,获取验证码.点击登录,验证验证码是否输入错误.是否超时等情况,一旦校验通过,将用户数据保存到数据中(业务逻辑). 前提:注册阿里用户,开通短信服务,申请key.秘钥.签名.短信 ...
- 浏览器端获取短信验证码java实现——阿里云短信服务
需求:浏览器端输入手机号,获取验证码.点击登录,验证验证码是否输入错误.是否超时等情况,一旦校验通过,将用户数据保存到数据中(业务逻辑). 前提:注册阿里用户,开通短信服务,申请key.秘钥.签名.短 ...
- ABP框架中短信发送处理,包括阿里云短信和普通短信商的短信发送集成
在一般的系统中,往往也有短信模块的需求,如动态密码的登录,系统密码的找回,以及为了获取用户手机号码的短信确认等等,在ABP框架中,本身提供了对邮件.短信的基础支持,那么只需要根据自己的情况实现对应的接 ...
- php 阿里云短信服务及阿里大鱼实现短信验证码的发送
一:使用阿里云的短信服务 ① 申请短信签名 ②申请短信模板 ③创建Access Key,获取AccessKeyId 与 AccessKeySecret.(为了安全起见,这里建议使用子用户的Access ...
- 阿里云短信服务调用例子-Python
阿里云短信服务调用例子 阿里云官方文档https://helpcdn.aliyun.com/document_detail/101893.html 首先需要安装阿里云PythonSDK(下面是pyth ...
- Python实现阿里云短信推送
本篇文章是使用Python的Web框架Django提供发送短信接口供前端调用,Python版本2.7 阿里云入驻.申请短信服务.创建应用和模板等步骤请参考:阿里云短信服务入门 1.下载sdk 阿里云短 ...
- Yii简单使用阿里云短信教程!
首先我们下载官方完整包的SDK官方标明了啊,PHP版本一定要不低于5.5下载后目录如下: 我们只需要将目录里的api_sdk复制出来到Yii项目的根目录的common模块下面的extensions文件 ...
- flask+阿里云短信服务实现注册发送手机验证码
效果图: 该效果主要讲解实现通过调用阿里云的SDK实现发送注册验证码短信(阿里云短信付费使用) 购买阿里云短信服务 购买链接:https://www.aliyun.com/product/sms 1. ...
随机推荐
- 递归--练习1--noi3089爬楼梯
递归--练习1--noi3089爬楼梯 一.心得 根据输入,是要写连续输入多个值的程序 二.题目 3089:爬楼梯 总时间限制: 1000ms 内存限制: 65536kB 描述 树老师爬楼梯,他可 ...
- Django框架基于session的登录/注销实现
博主最近想基于Django框架开发一个测试平台,第一版先实现查看下载自动化的测试报告文件 第一步:前端框架 网上选择一款开源boostrap的前端框架 AdminLTE,这里给个链接 https:/ ...
- UVA-10806 Dijkstra, Dijkstra. (最小费用流,网络流建模)
题目大意:给一张带权简单图,找出一条经过起点s和终点t的最小回路. 题目分析:建立网络,以s为源点,t为汇点,另每条边的容量为1,单位费用为边权值.求最小费用流,增广两次后的最小费用便是答案. 代码如 ...
- Javascript 面向对象编程(补充):封装
Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类). 那么,如果 ...
- 201621123005《java程序设计》第五周学习总结
201621123005<Java程序设计>第五周实验总结 1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 接口.多态.inferface.has-a.Compar ...
- 201621123006 《Java程序设计》第7周学习总结
1. 本周学习总结 1.1 思维导图:Java图形界面总结 1.2 可选:使用常规方法总结其他上课内容. 窗体事件:一般做最外层容器 鼠标事件:按下.松开.单击 键盘事件:按下.释放 动作事件:不代表 ...
- 201621123006 《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰 ...
- 学习 Flask 扩展 Flask-RESTful
pip install Flask-RESTful Flask-RESTful扩展.首先,我们来安装上面这个扩展. from flask import Flask from flask_restful ...
- timer Compliant Controller project (1)--Product introduction meeting
Last week ,I lead the meeting for new project. i'm very excited. The meeting is divided into the fo ...
- Java判断String类型变量是否可以转换数字类型
正则表达式 首先要import java.util.regex.Pattern 和 java.util.regex.Matcher public boolean isNumeric(String st ...