longxiaofei / spider-BaiduIndex

data sdk for baidu Index
MIT License
748 stars 230 forks source link

老哥,你怎么知道https://miao.baidu.com/abdr这个的参数是写死的呢? #49

Closed yu1002139909 closed 3 years ago

yu1002139909 commented 3 years ago

我这边如果用你那个参数,是不行的 不知道其他朋友行不

longxiaofei commented 3 years ago

并不是写死的,只是猜测这个参数,是一直有效的,因为我换过三个账号和不同IP相隔几天去使用这同一个参数去登录,都是没问题的,等有时间再去看data是怎么生成的。

你那边使用会抛QdataError的异常吗?

yu1002139909 commented 3 years ago

哈哈哈 我这边没有抛异常,因为我也在爬百度的数据,我这边的接口也用到了这个参数,我这边如果用你项目中的token 来生成data,和签名 去请求我那个接口是不行的,估计和请求的接口有关。你研究了token这个参数的话记得回复我下呀,哈哈哈,我研究过,但是他做了js混淆。看起来比较麻烦

longxiaofei commented 3 years ago

呃,是这样的,如果你的应用不是"百度指数",那么我这个token是无效的。

这个token用base64解码后,有两个字段,分别是"key_id"和“data”,data是把一个obj进行转为JSON文本进行加密的,"key_id"应该每个接口或者应用单独的一个,加密过data的原obj里面也有一些接口或应用的标识。

因为我的这个项目不想使用运行js的方式去直接把混淆的代码拿来用(会给使用者添加不必要的麻烦,比如安装node.js环境),所以都是用python写的。如果自己做项目的话,你完全可以跳过中间逻辑,把混淆过的js代码拆解后拿过来,添加上自己写一些js代码拿来用。

yu1002139909 commented 3 years ago

原来是这样,哈哈哈 ,学习了谢谢老哥,我这边看了 确实是这样的 我这边的key_id为47。你这边那我看了下,和我这个不是一样的。那这样就是没问题的

brucejiao777 commented 1 year ago

抱歉前辈们,请问miao.baidu.com 这个是干嘛用的

Tommy-pixels commented 1 year ago

前辈们,有没有研究过data的生成方式,刚刚遇到了需要验证ab_sr cookie值的请求,但是用固定data发包到miao.baidu.com/abdr响应获得的ab_sr无效,花了好长时间了没找到解决方案,求助下前辈们