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. ...
随机推荐
- ubuntu 10.04 安装arm交叉编译器
家里有一台cotext-A9(armv7-a) 的盒子,现在不用了, 一直想着废物利用.于是想怎么为这盒子编译程序. 目标机器: root@routon-h1:/# uname -a Linux ro ...
- URAL 1106 Two Teams (DFS)
题意 小组里有N个人,每个人都有一个或多个朋友在小组里.将小组分成两个队伍,每个队伍的任意一个成员都有至少一个朋友在另一个队伍. 思路 一开始觉得和前几天做过的一道2-sat(每个队伍任意两个成员都必 ...
- html中元素盒子垂直居中的实现方法
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Nginx 防盗链设置
何谓'盗链' 此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容. 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址( ...
- tensorflow中tensor的静态维度和动态维度
tf中使用张量(tensor)这种数据结构来表示所有的数据,可以把张量看成是一个具有n个维度的数组或列表,张量会在各个节点之间流动,参与计算. 张量具有静态维度和动态维度. 在图构建过程中定义的张量拥 ...
- Nginx 设置rewrite规则是遇到的一个{}大括号引发的报错问题
一个群友提到: 用nginx image_filter模块裁图,用!拼宽高能够实现,现在想用参数传宽高总是报错,配置如下: location ~ ^/images/.* { if ( $q ...
- 51Nod 1049:最大子段和(dp)
1049 最大子段和 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 N个整数组成的序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+ ...
- Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32)
本文将介绍 Windows 系统中高 DPI 开发的基础知识.由于涉及到坐标转换,这种转换经常发生在计算的不知不觉中:所以无论你使用哪种 Windows 下的 UI 框架进行开发,你都需要了解这些内容 ...
- 归并排序(C语言)
合并排序(MERGE SORT)是又一类不同的排序方法,合并的含义就是将两个或两个以上的有序数据序列合并成一个新的有序数据序列,因此它又叫归并算法. 它的基本思想就是假设数组A有N个元素,那么可以看成 ...
- POJ3259 Wormholes 【Bellmanford推断是否存在负回路】
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u011775691/article/details/27612757 非常easy的bellmanf ...