36氪网站_逆向登陆算法

JS代码:

window = global;
const JSEncrypt = require('node-jsencrypt');
function login_encrypt(arg) {
    r = new JSEncrypt();
    i = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCeiLxP4ZavN8qhI+x+whAiFpGWpY9y1AHSQC86qEMBVnmqC8vdZAfxxuQWeQaeMWG07lXhXegTjZ5wn9pHnjg15wbjRGSTfwuZxSFW6sS3GYlrg40ckqAagzIjkE+5OLPsdjVYQyhLfKxj/79oOfjl/lV3rQnk/SSczHW0PEyUbQIDAQAB"
    r.setPublicKey(i);
    e = arg
    var a = r.encrypt(e);
    return a
}


python代码:

# -*- coding: utf-8 -*-

import requests
import time
import execjs


headers = {
    'Accept': '*/*',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    'Connection': 'keep-alive',
    'Content-Type': 'application/json',
    'Origin': 'https://36kr.com',
    'Referer': 'https://36kr.com/',
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-site',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0',
    'sec-ch-ua': '"Microsoft Edge";v="135", "Not-A.Brand";v="8", "Chromium";v="135"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
}


# 获取当前时间戳(秒)
current_timestamp_s = time.time()
# 转换为毫秒
current_timestamp_ms = int(current_timestamp_s * 1000)
mobileNo="13302775336"
password="123456Ma"
# 编译 JS 代码
Js = execjs.compile(open("36kr_algorithm.js", "r", encoding='utf-8').read())
mobileNo = Js.call("login_encrypt", mobileNo)
print("mobileNo:",mobileNo)
password = Js.call("login_encrypt", password)
print("password:",password)
json_data = {
    'krtoken': '',
    'partner_id': 'web',
    'timestamp': current_timestamp_ms,
    'param': {
        'countryCode': '86',
        'mobileNo': mobileNo,
        'password': password
    },
}

response = requests.post(
    'https://gateway.36kr.com/api/mus/login/byMobilePassword',
    headers=headers,
    json=json_data,
)

# Note: json_data will not be serialized by requests
# exactly as it was in the original request.
#data = '{"krtoken":"","partner_id":"web","timestamp":1744253167679,"param":{"countryCode":"86","mobileNo":"ROgszTo2liH3v4DLwR75yZsn6/ZTcgVLpuK9e4miIiQfR5t47s8mDeGGxUrh0NcFWwBa26q/YvT4Ax8T6OD2orq5p6nB/Jrw4C/ozfjcJftB/wBaIfWnS5EXfte2f6wW3ckVLNJmFcIOZxfXf3JneRzZ5tRZP5T+TxKZLNa3Obw=","password":"VucSe7y64D9I4Z+ypdz8LdcAGUnImdzWDmF0LNknKWCoI69+ahULOQnsCzKuFqsL40oekdFWVZKmBlNl0AMgiyQ6q6uV2M5LFQvsHB/zqzF+6/OxWn8PNUS3u6+3plFHKLzdUPVoKzhN4RNvfDaxsVDHSI+O9fLF8IXUfbK47xM="}}'
#response = requests.post('https://gateway.36kr.com/api/mus/login/byMobilePassword', cookies=cookies, headers=headers, data=data)
print(response.text)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值