m0_62188788 2022-10-26 21:34 采纳率: 100%
浏览 274
已结题

如何自动获取token

目前通过浏览器——开发者工具获取网页链接,但其中关键链接的请求头中
authorizationtoken的内容都是突然出现的,在该条链接之前有两次option的预请求,请问如何通过python自动获取到authorizationtoken的内容。

链接是 https://www.sgx.com/zh-hans/securities/company-announcements

F12获取到的列表如下:

img

img

img

我使用上图这个authorizationtoken:
OepJg2iyYwqB7XGSh/98cy2UbED0nu1VwdKEInz0PzSSIKN5Bs2KIqWmj20sE04hioC20wtC5MLBDqi/2ttJZQsAmBrvnBJbVQMyJLosouAjwjMThSQLfbNqX5yoyNih
通过python,写好相应内容,是能获取到内容的,但这个authorizationtoken只是临时性的,不可能每次F12,获取到authorizationtoken再手动运行爬虫。

我知道很多网站请求时或者登陆时会有相应字段,但我需要的这个网址,我按上面的办法是没有token的,所以想请教下大家,有什么办法自动获取到我所说的地址里的authorizationtoken吗?谢谢!

  • 写回答

7条回答 默认 最新

  • aabond 2022-10-27 10:32
    关注

    经过对压缩混淆的js代码进行分析,得到了加密函数,具体流程如下

    1. 首先访问 https://www.sgx.com/config/appconfig.json?v=e1be1215 获取"CMS_VERSION"
    2. 再访问 https://api2.sgx.com/content-api/?queryId=%22CMS_VERSION%22:we_chat_qr_validator ,得到"qrValidator"
    3. 接着用加密函数对qrValidator加密,就可以得到 authorizationtoken
    authorizationtoken = qrValidator.replace(/[a-zA-Z]/g,(function(t){var e=t.charCodeAt(0)+13;return String.fromCharCode((t<="Z"?90:122)>=e?e:e-26)}))) 
    

    python代码如下

    import requests
    import re
    
    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
     
    response = requests.get("https://www.sgx.com/config/appconfig.json?v=e1be1215", headers = headers)
    CMS_VERSION = response.json()["CMS_VERSION"]
    
    response = requests.get("https://api2.sgx.com/content-api/?queryId=" + CMS_VERSION + ":we_chat_qr_validator", headers = headers)
    qrValidator = response.json()["data"]["qrValidator"]
    
    def encrypt(t):
        e = ord(t) + 13
        code = e if ((90 if t<="Z" else 122) >=e) else e-26
        return chr(code)
    
    print(qrValidator)
    authorizationtoken=""
    for t in qrValidator:
        authorizationtoken += (encrypt(t) if re.match("[a-zA-Z]", t) else t)
    print(authorizationtoken)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 修改了问题 10月26日
  • 修改了问题 10月26日
  • 展开全部

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。