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 相关文章推荐
闭包在python中的应用之translate和maketrans用法详解
Aug 27 Python
Python selenium 三种等待方式解读
Sep 15 Python
Python+matplotlib实现填充螺旋实例
Jan 15 Python
pygame游戏之旅 创建游戏窗口界面
Nov 20 Python
python paramiko利用sftp上传目录到远程的实例
Jan 03 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
Python使用matplotlib 模块scatter方法画散点图示例
Sep 27 Python
python实现的批量分析xml标签中各个类别个数功能示例
Dec 30 Python
python全局变量引用与修改过程解析
Jan 07 Python
pytorch实现MNIST手写体识别
Feb 14 Python
python实现录音功能(可随时停止录音)
Oct 26 Python
python数字图像处理:图像的绘制
Jun 28 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
文件上传的实现
2006/10/09 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
在openSUSE42.1下编译安装PHP7 的方法
2015/12/24 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
PHP defined()函数的使用图文详解
2019/07/20 PHP
cloudgamer出品ImageZoom 图片放大效果
2010/04/01 Javascript
如何屏蔽防止别的网站嵌入框架代码
2015/08/24 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
Js经典案例的实例代码
2018/05/10 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
python逐行读取文件内容的三种方法
2014/01/20 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
Python使用sort和class实现的多级排序功能示例
2018/08/15 Python
深入理解Django-Signals信号量
2019/02/19 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
python 变量初始化空列表的例子
2019/11/28 Python
python字符串判断密码强弱
2020/03/18 Python
python使用OpenCV模块实现图像的融合示例代码
2020/04/10 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
python实现感知机模型的示例
2020/09/30 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
Boda Skins皮衣官网:奢侈皮夹克,全球配送
2016/12/15 全球购物
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
教师专业自荐书范文
2014/02/10 职场文书
保密工作目标责任书
2014/07/28 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
工作收入证明模板
2014/10/10 职场文书
使用Python获取字典键对应值的方法
2022/04/26 Python