使用requests模拟登录知乎

本文介绍了如何使用requests库模拟登录知乎的过程。首先通过抓包工具获取必要的POST数据,包括client_id、authorization、时间戳等关键信息。即使不考虑验证码,也要在POST请求中包含这些参数。get_signature函数用于生成签名,其依赖于特定的密钥和算法。
摘要由CSDN通过智能技术生成
# -*- coding:UTF-8 -*-
参考 https://github.com/weldon2010/Python/blob/master/login_zhihu.py  
import requests, time
import hmac, json  需要的模块从js中可以看到
from hashlib import sha1  这个也是

"""

打开 抓包工具 使用错误的密码登录查看实际的post地址,和post需要的数据

"""

在开发者工具中 ctrls+shift+f 搜索 上图对应的client_id 可以得到

 authorization:"oauth c3cef7c66a1843f8b3a9e6a1e3160e20"  还有其他的可以看到这个值是固定的


时间戳  应该都知道该怎么做

如果不是频繁登录可以不用管验证码的值,但是post时要带上这个值


这两个可以都不用,这里只是列出如何获取

def get_signature(grantType, clientId, source, timestamp):

    ''' 处理signature'''

    hm = hmac.new(b'd1b964811afb40118a12068ff74a12f4', None, sha1) 

    # 这个数字在js中查找 40 位,猜位sha1,js里面也显示的位sha1

    hm.update(str.encode(grantType)) # 括号中是转为字节  这几个的顺序
    hm.update(str.encode(clientId))
    hm.update(str.encode(source))
    hm.update(str.encode(timestamp))
    print(str(hm.hexdigest()))
    return str(hm.hexdigest())


源码如下:

# -*- coding:UTF-8 -*-

import requests, time
import hmac, json  #这几个需要导入的可以从js中获取,加
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值