WeChat小程序token解释及应用

如何获取微信小程序的token

导入库

import re
import requests
import time

分析总结

  • re: 用于正则表达式操作。
  • requests: 用于发送HTTP请求。
  • time: 用于时间处理和暂停功能。
  • 创建会话对象
  • ss = requests.session()
    
  • 创建一个会话对象ss,可以跨多个请求保持会话信息(如cookies)。
  • 定义函数func

  • def func():
        url = 'https://mp.weixin.qq.com/cgi-bin/plugindetails?action=intro&pluginid=10058&token=2006370724&lang=zh_CN'
        headers = {
            'Host': 'mp.weixin.qq.com',
            'Cache-Control': 'max-age=0',
            'sec-ch-ua': '"Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92"',
            'sec-ch-ua-mobile': '?0',
            'Upgrade-Insecure-Requests': '1',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
            'Sec-Fetch-Site': 'same-origin',
            'Sec-Fetch-Mode': 'navigate',
            'Sec-Fetch-User': '?1',
            'Sec-Fetch-Dest': 'document',
            'Referer': 'https://mp.weixin.qq.com/cgi-bin/plugincenter?action=new&token=2006370724&lang=zh_CN',
            'Cookie': 'ua_id=U1WC8gWuFcizmxBHAAAAACY9LYAkAqsqYwjuSdPWTgQ=; mm_lang=zh_CN; wxuin=01389730423702; pgv_pvi=3289152512; pgv_pvid=6366917664; RK=KYit10UjFV; ptcz=bfc1245724f16df52251e62060241e0bbee49e27ca929151aabe06a26b288bad; tvfe_boss_uuid=29caf641ac2aed21; iip=0; sd_userid=67261618842400782; sd_cookie_crttime=1618842400782; pac_uid=1_228703575; o_cookie=2216928453; webwx_data_ticket=gSeeb7YaAyjTkF9jRHmCBTch; pgv_info=ssid=s266260444; uuid=0240fce938d3cc13003499f8a1103ec1; rand_info=CAESIJlqHtWK/8Ye51g3ZSywHyKaNso6CWBrVde51N+69tB3; slave_bizuin=3213362691; data_bizuin=3213362691; bizuin=3213362691; data_ticket=tlldLFLhbHms/s8CT/+9xroJScypEj1cisalsoawolwvXvaeRzFFLbY6mpCq15ei; slave_sid=N1pGNF9tc1M5NmxSejU0S1Z3akNKd3N1Q2kxSGdvbzZaSHFPSEVZbTlQenhEWUpfTFFKYlZCcnhHMnowZUNJVjk5cjhNNFl6Q0M1eURvQnk1T2NITFFsRGlicWx6NWFZZWZ6eXdJTUpLb3g3aGpZeTQweGNZVFU0TlRkSkE3S1Q1VHdQUGZSazNScUk3enlX; slave_user=gh_5b5440cc7bff; xid=25f3ea9813d08ed63ab24e923203d7a8; sig=h01097b68480e2246ccc348b2786a9397044deac7c9f9268a9ce36231870f151b08905d06a69eacf286',
        }
        r = ss.get(url=url, headers=headers)
        return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + "---" + re.findall(r'"&token=(.*?)"', r.text)[0]
    
  • url:请求的目标URL,指向微信公众平台的插件详情页面。
  • headers:包含模拟浏览器请求的头信息以及cookie。cookie中包含了登录信息。
  • r = ss.get(url=url, headers=headers):使用会话对象ss发送GET请求到指定URL,并获取响应对象r
  • 正则表达式解析:使用正则表达式从响应文本中提取token值,格式为"&token=(.*?)"。提取的第一个匹配项是token值。
  • 返回值:函数返回当前时间和提取的token,格式为“时间---token”。
  • 主循环

  • while 1:
        print(func())
        time.sleep(10)
    

  • 无限循环:不断调用func()函数并打印其返回值。
  • 暂停:每次调用func()后暂停10秒,以避免频繁请求。
  • 功能:这段代码通过发送请求到微信公众平台的插件详情页面,提取并打印token值,附带当前时间。
  • 请求头和cookie
    • 请求头模拟了浏览器的行为,包含了必要的头信息。
    • cookie包含了登录微信公众平台的信息,这对于成功请求页面并提取token至关重要。
  • 正则表达式
    • 使用正则表达式从响应文本中提取token值。正则表达式"&token=(.*?)"用于匹配token的值。
  • 无限循环
    • 代码在无限循环中每隔10秒钟调用一次func()函数,并打印结果。这可以用于监控token的变化或调试其他与token相关的功能。

改进建议

  1. 错误处理
    • 增加对HTTP请求的错误处理,如超时、请求失败等。
    • 增加对正则匹配失败的处理,防止因匹配不到token而引发的索引错误。
  2. cookie管理
    • 硬编码的cookie在实际应用中不太实用,应该通过登录接口动态获取并更新cookie。
  3. 请求频率
    • 考虑调整请求频率,以避免被目标服务器检测到并封禁。
  4. 日志记录
    • 可以增加日志记录功能,记录每次请求的结果和状态,方便后续分析和调试。
    • 
      import re,requests,time
      
      
      ss = requests.session()
      def func():
          url = 'https://mp.weixin.qq.com/cgi-bin/plugindetails?action=intro&pluginid=10058&token=2006370724&lang=zh_CN'
          headers = {
              'Host': 'mp.weixin.qq.com',
              'Cache-Control': 'max-age=0',
              'sec-ch-ua': '"Chromium";v="92", " Not A;Brand";v="99", "Google Chrome";v="92"',
              'sec-ch-ua-mobile': '?0',
              'Upgrade-Insecure-Requests': '1',
              'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36',
              'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
              'Sec-Fetch-Site': 'same-origin',
              'Sec-Fetch-Mode': 'navigate',
              'Sec-Fetch-User': '?1',
              'Sec-Fetch-Dest': 'document',
              'Referer': 'https://mp.weixin.qq.com/cgi-bin/plugincenter?action=new&token=2006370724&lang=zh_CN',
              'Cookie': 'ua_id=U1WC8gWuFcizmxBHAAAAACY9LYAkAqsqYwjuSdPWTgQ=; mm_lang=zh_CN; wxuin=01389730423702; pgv_pvi=3289152512; pgv_pvid=6366917664; RK=KYit10UjFV; ptcz=bfc1245724f16df52251e62060241e0bbee49e27ca929151aabe06a26b288bad; tvfe_boss_uuid=29caf641ac2aed21; iip=0; sd_userid=67261618842400782; sd_cookie_crttime=1618842400782; pac_uid=1_228703575; o_cookie=2216928453; webwx_data_ticket=gSeeb7YaAyjTkF9jRHmCBTch; pgv_info=ssid=s266260444; uuid=0240fce938d3cc13003499f8a1103ec1; rand_info=CAESIJlqHtWK/8Ye51g3ZSywHyKaNso6CWBrVde51N+69tB3; slave_bizuin=3213362691; data_bizuin=3213362691; bizuin=3213362691; data_ticket=tlldLFLhbHms/s8CT/+9xroJScypEj1cisalsoawolwvXvaeRzFFLbY6mpCq15ei; slave_sid=N1pGNF9tc1M5NmxSejU0S1Z3akNKd3N1Q2kxSGdvbzZaSHFPSEVZbTlQenhEWUpfTFFKYlZCcnhHMnowZUNJVjk5cjhNNFl6Q0M1eURvQnk1T2NITFFsRGlicWx6NWFZZWZ6eXdJTUpLb3g3aGpZeTQweGNZVFU0TlRkSkE3S1Q1VHdQUGZSazNScUk3enlX; slave_user=gh_5b5440cc7bff; xid=25f3ea9813d08ed63ab24e923203d7a8; sig=h01097b68480e2246ccc348b2786a9397044deac7c9f9268a9ce36231870f151b08905d06a69eacf286',
          }
          r = ss.get(url=url, headers=headers)
          #print(r.text)
          return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + "---"+re.findall(r'"&token=(.*?)"',r.text)[0]
      
      while 1:
          print(func())
          time.sleep(10)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值