欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python對(duì)接ihuyi實(shí)現(xiàn)短信驗(yàn)證碼發(fā)送

 更新時(shí)間:2020年05月10日 10:34:40   作者:程序哲學(xué)  
在本篇文章里小編給大家分享的是關(guān)于python對(duì)接ihuyi實(shí)現(xiàn)短信驗(yàn)證碼發(fā)送功能,需要的朋友們可以參考下。

在日常生活中我們經(jīng)常會(huì)遇到接收短信驗(yàn)證碼的場(chǎng)景,Python也提供了簡(jiǎn)便的方法實(shí)現(xiàn)這個(gè)功能,下面就用代碼來(lái)實(shí)現(xiàn)這個(gè)功能。

一般我們需要租借短信供應(yīng)商的服務(wù)器發(fā)送短信。如果是用于自學(xué)會(huì)有一定免費(fèi)條數(shù)的限額。

我們就借用互憶的平臺(tái)來(lái)是實(shí)現(xiàn)代碼。

首先需要訪問(wèn)http://www.ihuyi.com/sms.html注冊(cè)私人賬號(hào),注冊(cè)完之后進(jìn)入個(gè)人信息界面會(huì)看到自己的賬號(hào)和密鑰。

所需導(dǎo)入的包:

import requests,random,bs4

requests模塊用于發(fā)送請(qǐng)求,random模塊用于產(chǎn)生驗(yàn)證碼,bs4模塊用于解析服務(wù)器響應(yīng)信息。如果沒(méi)有安裝這些包,打開cmd,輸入pip install 包名  進(jìn)行安裝。

一般手機(jī)驗(yàn)證碼都是隨機(jī)四位數(shù),所以我們用一個(gè)函數(shù)來(lái)實(shí)現(xiàn),主要用random函數(shù)產(chǎn)生4位隨機(jī)數(shù)并返回。

def create_verify_code():
  """隨機(jī)產(chǎn)生一個(gè)4位數(shù)驗(yàn)證碼"""
  verify_code = ''
  for i in range(4):
    verify_code += str(random.randint(0,9))
  return verify_code

接著就要利用供應(yīng)商的API接口來(lái)發(fā)送短信,API文檔在互憶官網(wǎng)上就能下載到或者到自己賬戶中就能找到。

headers用于構(gòu)造請(qǐng)求頭,我們只需傳入手機(jī)號(hào)和要發(fā)送的文本,然后利用requests發(fā)送post請(qǐng)求給服務(wù)器,就會(huì)收到返回信息。

def sendmessagecode(phonenum,content):
  """發(fā)送短信驗(yàn)證碼"""
  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)

在收到服務(wù)器返回信息后,我們就可以解析信息,來(lái)判斷服務(wù)器是否發(fā)送成功。

response = sendmessagecode(phoneNum,content)  # 用response來(lái)接收響應(yīng)信息

判斷是否與服務(wù)器聯(lián)通,若鏈接成功再進(jìn)行下一步,否則打印失敗信息。

 if 200 == response.status_code:
   TODO...
  else:
    print('與服務(wù)器連接失敗:',response.status_code)

若響應(yīng)成功,就利用BeautifulSoup來(lái)解析響應(yīng)信息。

soup = bs4.BeautifulSoup(response.text,features='lxml') # 構(gòu)造soup對(duì)象
code = soup.find('code').string  
msg = soup.find('msg').string
if 2 == code: # 若服務(wù)器響應(yīng)碼為2,說(shuō)明短信發(fā)送成功
  print('code: %s msg: %s ' %(code,msg))
else:
  print('code: %s msg: %s ' %(code,msg))

全文代碼:

#! python3
# 測(cè)試發(fā)送短信,所用服務(wù)器為互億測(cè)試賬號(hào)
import requests,random,bs4
 
host = 'http://106.ihuyi.com/webservice/sms.php?method=Submit'
account = 'C27187646'
password = '64713042f161ae0555e9617afef40610'
 
def sendmessagecode(phonenum,content):
  """發(fā)送短信驗(yàn)證碼"""
  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():
  """隨機(jī)產(chǎn)生一個(gè)4位數(shù)驗(yàn)證碼"""
  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 = '您的驗(yàn)證碼是:%s。請(qǐng)不要把驗(yàn)證碼泄露給其他人。' %code
  response = sendmessagecode(phoneNum,content)
  print('短信內(nèi)容:',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('與服務(wù)器連接失?。?,response.status_code)

以上就是python對(duì)接ihuyi實(shí)現(xiàn)短信驗(yàn)證碼發(fā)送的詳細(xì)內(nèi)容,更多關(guān)于python短信驗(yàn)證碼發(fā)送實(shí)例的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 利用PyQt5+Matplotlib 繪制靜態(tài)/動(dòng)態(tài)圖的實(shí)現(xiàn)代碼

    利用PyQt5+Matplotlib 繪制靜態(tài)/動(dòng)態(tài)圖的實(shí)現(xiàn)代碼

    這篇文章主要介紹了利用PyQt5+Matplotlib 繪制靜態(tài)/動(dòng)態(tài)圖的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 詳解PyCharm+QTDesigner+PyUIC使用教程

    詳解PyCharm+QTDesigner+PyUIC使用教程

    這篇文章主要介紹了詳解PyCharm+QTDesigner+PyUIC使用教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • pytorch判斷是否cuda 判斷變量類型方式

    pytorch判斷是否cuda 判斷變量類型方式

    這篇文章主要介紹了pytorch判斷是否cuda 判斷變量類型方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • 對(duì)python同一個(gè)文件夾里面不同.py文件的交叉引用方法詳解

    對(duì)python同一個(gè)文件夾里面不同.py文件的交叉引用方法詳解

    今天小編就為大家分享一篇對(duì)python同一個(gè)文件夾里面不同.py文件的交叉引用方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • python字符串查找函數(shù)的用法詳解

    python字符串查找函數(shù)的用法詳解

    在本篇內(nèi)容里小編給各位整理的是關(guān)于python字符串查找函數(shù)的使用的知識(shí)點(diǎn)內(nèi)容,有需要的朋友們跟著學(xué)習(xí)參考下。
    2019-07-07
  • python實(shí)現(xiàn)人臉簽到系統(tǒng)

    python實(shí)現(xiàn)人臉簽到系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)人臉簽到系統(tǒng),帶數(shù)據(jù)庫(kù)存儲(chǔ),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • flask重啟后端口被占用的問(wèn)題解決(非kill)

    flask重啟后端口被占用的問(wèn)題解決(非kill)

    本文主要介紹了flask重啟后端口被占用的問(wèn)題解決(非kill),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 在Django中創(chuàng)建第一個(gè)靜態(tài)視圖

    在Django中創(chuàng)建第一個(gè)靜態(tài)視圖

    這篇文章主要介紹了在Django中創(chuàng)建第一個(gè)靜態(tài)視圖的方法,與其他編程語(yǔ)言的開始一樣,以Hello world作為示例,需要的朋友可以參考下
    2015-07-07
  • PyTorch解決ModuleNotFoundError: No module named ‘torch’

    PyTorch解決ModuleNotFoundError: No module named

    本文主要介紹了PyTorch解決ModuleNotFoundError: No module named ‘torch’,這個(gè)錯(cuò)誤意味著我們的Python環(huán)境中沒(méi)有安裝PyTorch庫(kù),無(wú)法正常使用其功能,下面就來(lái)具體介紹一下
    2024-03-03
  • python mysql中in參數(shù)化說(shuō)明

    python mysql中in參數(shù)化說(shuō)明

    這篇文章主要介紹了python mysql中in參數(shù)化說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06

最新評(píng)論