今曰油条_signature参数pyexecjs调用

2022-06-23  本文已影响0人  朝朝朝朝朝落

今曰油条下拉滚动新闻,url有个_signature,cookies里也有2个加密参数,先不管,


WX20220623-183043@2x.png

看看_signature怎么来的


WX20220623-183705@2x.png

i就是_signature, 每次结果都不一样,不要在意细节,看着像就行

WX20220623-184323@2x.png

继续走,到这里,return 有点长,console看看结果

WX20220623-184436@2x.png WX20220623-184931@2x.png

就是这个K(b, e, f, a, d, c, n, i) 了,进去看看:

WX20220623-185032@2x.png

这一串还是很长,console看看,找到了

WX20220623-185314@2x.png WX20220623-185612@2x.png

各种嵌套,硬钢不行了,就用pyexecjs调用吧(记得安装nodjs),把acrawler.js全选复制,保存成jrtt.js:

// 把一些浏览器环境补上
window = global;
document = {referrer : 'https://www.toutiao.com/'};
location = {
    href : 'https://www.toutiao.com/?wid=1635125685888',
    protocol: 'https:',
};
navigator = {
    userAgent:'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36',
};

~~这里是你复制的acrawler.js代码600多行...

// js调用
function get_signature(url){
    return window.byted_acrawler.sign({url:url})
}

然后是python调用代码:

import execjs
def get_signature():  
  '''解密signature参数'''
    with open('jrtt.js', encoding='utf-8')as f:
        jscode = f.read()
    url='https://www.toutiao.com/api/pc/list/feed?channel_id=3189398996&min_behot_time=0&refresh_count=1&category=pc_profile_channel'
    signature = execjs.compile(jscode).call('get_signature',url)
    print(signature)
    return signature

signature=get_signature()

运行一下,啊,结果这么短呢:


WX20220623-190923@2x.png

也可以的,这个参数有时效,短时间可以用同一个


WX20220623-191120@2x.png

感谢大佬指点: 之呼 [南枝向暖北枝寒]

上一篇下一篇

猜你喜欢

热点阅读