破解今日頭條接口的signature加密參數(shù)(超詳細)

該文章主要提供交流學習使用,請勿利用其進行不當行為!
如本篇文章侵犯了貴公司的隱私,請聯(lián)系我立刻刪除!

由于最近比較忙,暫時沒有更新,這段時間會及時更新的



現(xiàn)如今自媒體風聲水起,很多人現(xiàn)在都在從事著自媒體行業(yè),游戲宣傳,影視宣傳,等等,都在以文章形式傳播。

那今天分享一下今日頭條的是哪個參數(shù)的生成思路,以今日頭條推薦為例,我們進行抓包調試。


首先清楚我們要的加密參數(shù)名為:signature 然后全局搜索:


接下來咱們通過CTRL+F快捷鍵進行全局搜索signature參數(shù):



我們可以看到,在搜索結果中有一個js加密文件:lib_xxx.js ,我們通過網(wǎng)站目錄打開它


接下來依次點擊上方的Sources打開網(wǎng)站目錄,從左側欄依次點擊,找到lib_xxx.js文件,打開后的js文件可讀性極差,需要點擊下方格式化按鈕{ } 。

# 完整python調用代碼

import time
import execjs
import asyncio
from pyppeteer import launch
from urllib.parse import quote


def get_js():
    f = open("sign.js", 'r', encoding='utf-8')  # 打開JS文件
    htmlstr = f.read()
    return htmlstr


def get_des_psswd(e, c):
    js_str = get_js()
    ctx = execjs.compile(js_str)  # 加載JS文件
    return (ctx.call('get_page', e[0], c))  # 調用js方法  第一個參數(shù)是JS的方法名,后面的e和c是js方法的參數(shù)


async def main(key):
    browser = await launch(
        # headless=False
    )  # 將headless參數(shù)設為False,則變成有頭模式
    page = await browser.newPage()

    # 設置頁面視圖大小
    await page.setViewport(viewport={'width': 1280, 'height': 800})

    # 是否啟用JS,enabled設為False,則無渲染效果
    await page.setJavaScriptEnabled(enabled=True)
    await page.goto('https://www.toutiao.com/search/?keyword={}'.format(quote(key)))
    itmes = await page.cookies()
    cookie = ''
    for itme in itmes:
        name = itme['name']
        value = itme['value']
        cookie = cookie + name + '=' + value + ';'
    # 關閉瀏覽器
    await browser.close()
    return cookie[:-1]


def get_cookie(key):
    print('正在獲取cookie...')
    return asyncio.get_event_loop().run_until_complete(main(key))


if __name__ == '__main__':
    key = '搜索關鍵字'
    cookie = get_cookie(key)
    url = [
        'https://www.toutiao.com/api/search/content/?aid=24&app_name=web_search&offset=0&format=json&keyword={}&autoloa'
        'd=true&count=20&en_qc=1&cur_tab=1&from=search_tab&pd=synthesis&timestamp={}'.format(quote(key),time.time())
    ]

    url.append(get_des_psswd(e=url, c=cookie))  # 生成signature
    iurl = '&_signature='.join(url)  # 合成帶sign的api接口
    print('api_url:', url[1]) # 完整的api接口
    print('signature:', iurl) # signature加密串
    print('cookie:', cookie)  # 模擬用戶cookie

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 今日頭條web版的有評論,h5的沒有,因此來抓web數(shù)據(jù)。 抓取數(shù)據(jù)url類似于: 其中max_behot_tim...
    佑岷閱讀 2,290評論 0 0
  • 如今自媒體風生水起,很多人開始入住各大自媒體平臺進行自媒體創(chuàng)作。想要持續(xù)的輸出高質量的文章太難了,于是很多人就開始...
    探索者_逗你玩兒閱讀 6,236評論 1 3
  • 第一個參數(shù):min_behot_time 以下為今日第一個參數(shù)的頭條代碼 代碼整理后邏輯如下 邏輯看起來是取返回的...
    webmrxu閱讀 2,466評論 3 1
  • 鄭重聲明:本項目的所有代碼和相關文章, 僅用于經(jīng)驗技術交流分享,禁止將相關技術應用到不正當途徑,因為濫用技術產(chǎn)生的...
    云爬蟲技術研究筆記閱讀 1,454評論 0 0
  • 目標:爬取今日頭條頭條號王者榮耀資訊和視頻。 爬蟲關鍵點:1.分析單頁面獲取所需要的內容,2.找到文章列表頁翻頁規(guī)...
    benwusheng閱讀 5,102評論 0 0

友情鏈接更多精彩內容