最近在爬取“马蜂窝”的 app 攻略部分,爬取不同城市的时候发现每次请求的时候需要加上不同的 oauth_signature, 也就是服务端和客户端验证的签名。
例如,得到的是“ oauth_signature=2Kj6MQi6oZ%2FkNPye4xYUGm%2BRD%2Bc%3D ”
URL 解码之后得到的是“ 2Kj6MQi6oZ/kNPye4xYUGm+RD+c=”
这个是使用的 HMAC-SHA1 方法,也就是 sha1,就是使用消息+类似密码的东西得到的
大致公式总结如下,
消息=未知
密码=''.join( [ oauth_timestamp,oauth_token,oauth_nonce ] .sort())->base64 编码
sha1 (消息+密码) = oauth_signature = “ oauth_signature ”
结果总是算不对,现在想问问可不可以直接去得到消息是什么,以及每次的 oauth_nonce 随机数怎么得到