python对接ihuyi实现短信验证码发送


Posted in Python onMay 10, 2020

在日常生活中我们经常会遇到接收短信验证码的场景,Python也提供了简便的方法实现这个功能,下面就用代码来实现这个功能。

一般我们需要租借短信供应商的服务器发送短信。如果是用于自学会有一定免费条数的限额。

我们就借用互忆的平台来是实现代码。

首先需要访问http://www.ihuyi.com/sms.html注册私人账号,注册完之后进入个人信息界面会看到自己的账号和密钥。

所需导入的包:

import requests,random,bs4

requests模块用于发送请求,random模块用于产生验证码,bs4模块用于解析服务器响应信息。如果没有安装这些包,打开cmd,输入pip install 包名  进行安装。

一般手机验证码都是随机四位数,所以我们用一个函数来实现,主要用random函数产生4位随机数并返回。

def create_verify_code():
  """随机产生一个4位数验证码"""
  verify_code = ''
  for i in range(4):
    verify_code += str(random.randint(0,9))
  return verify_code

接着就要利用供应商的API接口来发送短信,API文档在互忆官网上就能下载到或者到自己账户中就能找到。

headers用于构造请求头,我们只需传入手机号和要发送的文本,然后利用requests发送post请求给服务器,就会收到返回信息。

def sendmessagecode(phonenum,content):
  """发送短信验证码"""
  headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
  data = {'account':account,'password':password,'mobile':phonenum,'content':content}
  return requests.post(host,data=data,headers=headers)

在收到服务器返回信息后,我们就可以解析信息,来判断服务器是否发送成功。

response = sendmessagecode(phoneNum,content)  # 用response来接收响应信息

判断是否与服务器联通,若链接成功再进行下一步,否则打印失败信息。

if 200 == response.status_code:
   TODO...
  else:
    print('与服务器连接失败:',response.status_code)

若响应成功,就利用BeautifulSoup来解析响应信息。

soup = bs4.BeautifulSoup(response.text,features='lxml') # 构造soup对象
code = soup.find('code').string  
msg = soup.find('msg').string
if 2 == code: # 若服务器响应码为2,说明短信发送成功
  print('code: %s msg: %s ' %(code,msg))
else:
  print('code: %s msg: %s ' %(code,msg))

全文代码:

#! python3
# 测试发送短信,所用服务器为互亿测试账号
import requests,random,bs4
 
host = 'http://106.ihuyi.com/webservice/sms.php?method=Submit'
account = 'C27187646'
password = '64713042f161ae0555e9617afef40610'
 
def sendmessagecode(phonenum,content):
  """发送短信验证码"""
  headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
  data = {'account':account,'password':password,'mobile':phonenum,'content':content}
  return requests.post(host,data=data,headers=headers)
 
def create_verify_code():
  """随机产生一个4位数验证码"""
  verify_code = ''
  for i in range(4):
    verify_code += str(random.randint(0,9))
  return verify_code
 
if __name__ == '__main__':
  phoneNum = '159XXXXXXXX'
  code = create_verify_code()
  content = '您的验证码是:%s。请不要把验证码泄露给其他人。' %code
  response = sendmessagecode(phoneNum,content)
  print('短信内容:',content)
  if 200 == response.status_code:
    soup = bs4.BeautifulSoup(response.text,features='lxml')
    code = soup.find('code').string
    msg = soup.find('msg').string
    if 2 == code:
      print('code: %s msg: %s ' %(code,msg))
    else:
      print('code: %s msg: %s ' %(code,msg))
  else:
    print('与服务器连接失败:',response.status_code)

以上就是python对接ihuyi实现短信验证码发送的详细内容,更多关于python短信验证码发送实例的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python3使用requests登录人人影视网站的方法
May 11 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
解读python logging模块的使用方法
Apr 17 Python
对python中两种列表元素去重函数性能的比较方法
Jun 29 Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 Python
使用pycharm设置控制台不换行的操作方法
Jan 19 Python
10 分钟快速入门 Python3的教程
Jan 29 Python
详解numpy的argmax的具体使用
May 27 Python
Python中print函数简单使用总结
Aug 05 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
Feb 07 Python
python实现IOU计算案例
Apr 12 Python
Python PIL按比例裁剪图片
May 11 Python
python调用API接口实现登陆短信验证
May 10 #Python
aws 通过boto3 python脚本打pach的实现方法
May 10 #Python
Django 设置admin后台表和App(应用)为中文名的操作方法
May 10 #Python
基于python实现上传文件到OSS代码实例
May 09 #Python
使用python创建生成动态链接库dll的方法
May 09 #Python
浅析python 动态库m.so.1.0错误问题
May 09 #Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
May 09 #Python
You might like
PHP5中使用DOM控制XML实现代码
2010/05/07 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
2015/10/19 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
input输入框内容实时监测(附代码)
2017/08/15 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
python实现封装得到virustotal扫描结果
2014/10/05 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
浅谈Python中的继承
2020/06/19 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
在C中是否有模拟继承等面向对象程序设计特性的好方法
2012/05/22 面试题
化工专业推荐信范文
2013/11/28 职场文书
中专生的个人自我评价
2013/12/11 职场文书
工程技术员岗位职责
2014/03/02 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
食品安全承诺书
2014/05/22 职场文书
高校群众路线教育实践活动剖析材料
2014/10/10 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
孔繁森观后感
2015/06/10 职场文书
公司庆典主持词
2015/07/04 职场文书