# -*- coding:UTF-8 -*-
参考 https://github.com/weldon2010/Python/blob/master/login_zhihu.py
import requests, time
import hmac, json 需要的模块从js中可以看到
from hashlib import sha1 这个也是
hm.update(str.encode(clientId))
hm.update(str.encode(source))
hm.update(str.encode(timestamp))
print(str(hm.hexdigest()))
return str(hm.hexdigest())
源码如下:
参考 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中获取,加