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. ...
随机推荐
- 【MySQL】经典数据库SQL语句编写练习题——SQL语句扫盲
[MySQL]数据库原理复习——SQL语言 对基本的SQL语句编写的练习题,其中的题目的答案可能会有多种书写方式. 1.题目1 1.1 关系模式 学生student:SNO:学号,SNAME:姓名,A ...
- IEnumerable的用法
本文导读:IEnumerable和IEnumerable<T>接口在.NET中是非常重要的接口,它允许开发人员定义foreach语句功能的实现并支持非泛型方法的简单的迭代,IEnumera ...
- bzoj4129
题解: 树上+可修改莫队 莫队的每一块 可以用一个栈 每一次dfs个数>sqrt(n)(自己选的)的时候就可以跳出了 然后不要忘记分出来最后一块 代码: #include<bits/std ...
- 在ubuntu16上进行nginx+uwsgi+django部署的简要步骤
网上有很多部署教程,说了一大堆,遇到坑还是要自己一个个解决,这里有几个比较重要的坑大家一定要注意. 1.首先要安装python和python-dev环境,如果没有安装python-dev后面安装有些依 ...
- Unit Test Generator 简介
从Visual Studio 2012开始,创建单元测试从右键菜单中消失了,这让开发者感觉很不习惯.其实创建单元测试并不是消失了,只是独立成一个扩展Unit Test Generator,单独安装这个 ...
- 在JavaScript中进行文件处理,第五部分:Blobs
译注:原文是<JavaScript高级程序设计>的作者Nicholas Zakas写的,本翻译纯属为自己学习而做,仅供参考.原文链接:这里 到目前为止,这个系列的帖子集中在和这些文件交互- ...
- Linux:提示符PS1个性设置
提示符PS1个性设置 1)默认PS1 echo $PS1 2)个性PS1 #去掉了默认显示的[]号#\e[1;34m\]\u:user名高亮显示并显示颜色#\e[5;33m\]\h:hostname主 ...
- /usr/include/c++/4.8/functional:1697:61: error: no type named ‘type’ in ‘class std::result_of<std::_Mem_fn<void
/usr/include/c++/4.8/functional:1697:61: error: no type named ‘type’ in ‘class std::result_of<std ...
- 2018-2019-2 《网络对抗技术》Exp3免杀原理与实践 20165222
1. 实践内容 1.1 正确使用msf编码器 使用 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 7 -b ...
- 利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏
[先上一张效果图]: 一.原理: 其实原理很简单: 1.手机投屏到电脑: 2.截取投屏画面的题目部分,进行识别,得到题目和三个答案: 3.将答案按照一定的算法,进行搜索,得出推荐答案: 4.添加了一些 ...