zhangdabiao 发表于 2021-7-27 15:53

python模拟登录网站,用post提交的参数问题

这个网站是我们学校的体温上报网站,本来想着写个程序让他自己报体温,但是提交参数的时候出错了,一直登录不进去。请各位大佬指点一下哪里错了。放链接
http://hmgr.sec.lit.edu.cn

我f12看他登陆时提交的参数是json类型,但我就是死后登不进去。请各位大佬指点一下。下面是我写的代码图

# -*- coding: utf-8 -*-
import requests
import json
header = {
    "Host":"hmgr.sec.lit.edu.cn",
    "Content-Type":"application/json"
    }
postUrl ="http://hmgr.sec.lit.edu.cn/wms/healthyLogin"
Data = {
      "cardNo":"4545454","password":"zsh336"
    }
def lylgLogin():   
    #登录
    print("开始登录")
    responseRes = requests.post(postUrl, json=Data, headers=header)
    # 返回数据
    print(f"statusCode = {responseRes.status_code}")
    print(f"text = {responseRes.text}")
if __name__ == "__main__":
    # 从返回结果来看,有登录成功
    lylgLogin()

Prozacs 发表于 2021-7-27 16:02

本帖最后由 Prozacs 于 2021-7-27 16:14 编辑

import requests
import json
import hashlib
header = {
    "Accept": "application/json, text/plain, */*",
    "Content-Type":"application/json;charset=UTF-8;Access-Control-Allow-Headers",
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36',
    'Referer':'http://hmgr.sec.lit.edu.cn/web/',
    }
pasd= hashlib.sha256('zsh336'.encode('utf-8')).hexdigest()
postUrl ="http://hmgr.sec.lit.edu.cn/wms/healthyLogin"
Data = '{"cardNo":"4545454","password":"'+pasd+'"}'
def lylgLogin():   
    #登录
    print("开始登录")
    responseRes = requests.post(postUrl, data=Data, headers=header)
    # 返回数据
    print(f"statusCode = {responseRes.status_code}")
    print(f"text = {responseRes.text}")
if __name__ == "__main__":
    # 从返回结果来看,有登录成功
    lylgLogin()

Vickie9 发表于 2021-7-27 16:03

用request库里面的session登录并提交

as614001 发表于 2021-7-27 16:03

花里胡哨的配色~ 好好练习吧
responseRes = requests.post(postUrl, json=Data, headers=header)

responseRes = requests.post(postUrl, data=Data, headers=header) 或 responseRes = requests.post(postUrl, data=json.dumps(Data), headers=header)

ofo 发表于 2021-7-27 16:03

你这能登录成功才怪,你没看清楚密码加密了么

linguo2625469 发表于 2021-7-27 16:13

let sha256 = require("js-sha256").sha256; //这里用的是require方法,所以没用import
      let params = {..._formData};
      params.password = sha256(this.formData.password);
查看你们学校源码发现使用了sha256加密你的代码没有加密所以登不上,

goMoney 发表于 2021-7-27 16:37

password sha256加密就可以了

Prozacs 发表于 2021-7-27 16:39

其他我都不敢兴趣,我就好奇这洗澡也要预约了?还是VUE写的

zhangdabiao 发表于 2021-7-27 17:42

Prozacs 发表于 2021-7-27 16:02
import requests
import json
import hashlib


谢谢大佬们{:1_893:}

zhangdabiao 发表于 2021-7-27 17:43

linguo2625469 发表于 2021-7-27 16:13
let sha256 = require("js-sha256").sha256; //这里用的是require方法,所以 ...

谢谢大哥
页: [1] 2
查看完整版本: python模拟登录网站,用post提交的参数问题