# encoding:utf-8

import re
import json
import random
from requests.sessions import Session

class Regist(object):
  def __init__(self):
    """初始化session 并设置header和cookie"""

    self.url = "http://xxxx/Account/Regist"
    self.s = Session()
    self.s.headers.setdefault("Content_type", "application/x-www-form-urlencoded")
    self.s.cookies.update(self.get_cookies()[0])

    # self.s.headers.update({"Cookies": self.get_cookies()})

  def get_cookies(self):
    """
    获取上一次请求的cookie
    :return: 返回cookie dict
    """
    r = self.s.get(self.url)
    rint(r.cookies.get_dict())
    return (r.cookies.get_dict(), r.text)

  def get_token(self):
    ""
    获取上一次请求隐匿的表单token
    :return:
    """
    pattern = 'name="__RequestVerificationToken" type="hidden" value="(.*)"'
    p = re.compile(pattern)
    text = self.get_cookies()[1]
    if p.search(text):
      token = p.search(text).groups()[0]
      token = token.__str__().strip('"')
    else:
      return
    eturn token

  def get_mobile(self):
    s = "144"
    n = range(10)
    for i in range(8):
    s += random.choice(n).__str__()
    if len(s) == 4 and s == "1442":
    s = (int(s) - 1).__str__()
    print(s)
    return s

  def regist(self):
    param = {"__RequestVerificationToken": self.get_token(),
    "MobilePhone": self.get_mobile(),
    "PassWord": "123456a",
    "ConfirmPassword": "123456a",
    "IntroducerMobile": "",
    "IsAcceptPact": "true"}
    r = self.s.post(self.url, data=param)
    try:
      eturn json.loads(r.text)
    except:
      return r.text

if __name__ == '__main__':
print(Regist().regist())

requests 获取token的更多相关文章

  1. Requests方法 -- Token获取操作

    获取token和code流程如下:a.先登陆抓包查看post(提交表单操作)头中是否有token和code关键字b.已知步骤a中出现了token和code,不登录前刷新登陆页面,查看response中 ...

  2. 登录获取token,token参数关联至所有请求的请求体内

    问题描述: 有些系统接口判断用户是否登录,是校验登录接口成功后传的token值,也就是请求系统所有接口时,前端传参必带登录成功后接口返回的token,后台以此检验是否过期或是否有登录.所有接口都依赖登 ...

  3. Python接口自动化【requests处理Token请求】

    首先说一下使用python模拟登录或注册时,对于带token的页面怎么登录注册模拟的思路: 1.对于带token的页面,需要先从最开始的页面获取合法token 2.然后使用获取到的合法token进行后 ...

  4. nodejs向远程服务器发送post请求----融云Web SDK/客户端获取token

    最近要用到一个叫融云的及时通讯的SDK,在获取token这个步骤的时候有点卡顿,以防以后碰到类似的问题,再此记录一下. 客户端通过融云 SDK 每次连接服务器时,都需要向服务器提供 Token,以便验 ...

  5. 获取token,绑定微信号,自定义菜单,事件响应demo

    摘要: 这个demo包含了获取token,绑定微信号,设置自定义菜单,响应文本和事件 这个教程的基础篇和提升篇都看完了,总感觉有点隔靴挠痒的感觉,讲的东西我都懂,没有吸收多少新鲜的知识.貌似还没有我这 ...

  6. 获取Token不完整问题

    有时会遇到获取Token只能获取一半的问题,明明有两个Cookie,但只获取到一个,这个是因为301重定向跳转设置问题,设置为True就可以获取到完整的Token了. myHttpWebRequest ...

  7. weblogic下 微信公众平台获取token报错

    问题描述: 开发微信公众平台,本地tomcat可以正常获取token并发送模板消息,部署在weblogic后报错,异常信息如下: java.security.InvalidKeyException: ...

  8. 新浪微博登陆,获取token

    用WeiboAuthListener获取code 用下面的代码获取token..半成品的sdk真让人捉急. String code = values.getString("code" ...

  9. 获取token之后,再调用匿名方法

    js获取token bpm.api.beginDownload = function (filePath, fileName) { var url = "/Home/GetToken&quo ...

随机推荐

  1. SpringBoot Mybatis 使用LocalDateTime

    mybatis-spring-boot-starter 2.0.1 会报错,不知道如何解决(建议先不用) mybatis-spring-boot-starter 2.0.1 - 1.3.2 版本不会报 ...

  2. kali中的postgres怎么连接

    metasploit,默认使用的是postgresql数据库.在BT5或是Kali等专业的渗透系统中,postgresql已经被默认安装. 执行msfdb init会自动创建一个默认的用户名密码都是m ...

  3. c++字节对齐编译器指令#pragma

    第一种 #pragma pack(push, 1) // 先把当前对齐设置压栈,再设置为1字节对齐 struct S { char a; ]; }; #pragma pack(pop) // 恢复先前 ...

  4. 服务消费者Feign和Ribbon的区别

    1.Ribbon通过注解@EnableEurekaClient/@EnableDiscoveryClient向服务中心注册:    PS:选用的注册中心是eureka,那么就推荐@EnableEure ...

  5. 数据库升级到mysql5.7出现的1067 - Invalid default value for '字段名' (docker版)

    docker run -d --name xxx mysql:5.7 docker container cp xxx:/etc/mysql/mysql.conf.d .   // 取出mysql中的配 ...

  6. ubunru18.04下面安装docker

    sudo apt-get updat // 更新apt包索引 sudo apt-get remove docker docker-engine docker-ce docker.io // 卸载旧版本 ...

  7. 【转】手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)

    1.引言 特别说明:本文内容仅用于即时通讯技术研究和学习之用,请勿用于非法用途.如本文内容有不妥之处,请联系JackJiang进行处理!   我司有关部门为了获取黑产群的动态,有同事潜伏在大量的黑产群 ...

  8. Excel阅读模式/聚光灯开发技术序列作品之三 高级自定义任务窗格开发原理简述—— 隐鹤

    Excel阅读模式/聚光灯开发技术序列作品之三 高级自定义任务窗格开发原理简述——    隐鹤 1. 引言 Excel任务窗格是一个可以用来存放各种常用命令的侧边窗口(准确的说是一个可以停靠在类名为x ...

  9. Docker 核心技术之容器

    什么是容器 容器(Container) 容器是一种轻量级.可移植.并将应用程序进行的打包的技术,使应用程序可以在几乎任何地方以相同的方式运行 Docker将镜像文件运行起来后,产生的对象就是容器.容器 ...

  10. H5键盘事件处理

    if (/Android/gi.test(navigator.userAgent)) { const innerHeight = window.innerHeight; window.addEvent ...