_signature、 __ac_nonce、 __ac_signature参数

Python爬虫scrapy

共 997字,需浏览 2分钟

 ·

2020-12-05 19:13

开始水

接口中有参数 _signature 参数

直接全局搜索这个参数,会在一个 index-*.js 中搜索到, 虽然 captcha.js 中也有,不过没用

在文件中找到该字符串位置,打断点,调试。

继续下一步,调试会跳转到 acrawler.js 文件中.

acrawler.js 文件

下一步直接将 js 文件拿出来, 执行。

1、简化 js, 删除一些没有用的东西

参数后改为空列表即可

2、nodewindowglobal

定义

var window = global;

继续执行,缺啥补啥(调试打印 Z[S],就可以知道缺啥了 )

window.location = params.location;
window.navigator = params.navigator;

然后就可以出来短的了

有个问题加了下面的代码就会报错

window.byted_acrawler && window.byted_acrawler.init({
                aid24,
                dfp: !0
            });

注释掉就可以,不知道啥原因。

长的 _signature 需要加 cookie,把 cookie 放进去就 ok 了。放在主要加密函数的后面,放在前面没用。不生效

结果:

测试一下

请求 api/pc/feed 接口时,需要在前面加上 toutiao 进行加密。

cookie 中的 __ac_nonce __ac_signature

直接请求详情,不携带 cookie, 会响应 cookie  __ac_nonce


通过 __ac_nonce 生成 __ac_signature

直接调用上面的方法即可

function f2(__ac_nonce){
    ac_signature = window.byted_acrawler.sign("", __ac_nonce);
    return ac_signature
}
水完了!!!
下面为可以直接执行的 js 代码。直接复制保存,用node执行就可以了。


浏览 75
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报