用python解密百度指数数据

本文介绍如何使用Chrome浏览器的开发者工具获取百度指数API的数据,并通过Python编写解密算法解析加密数据,实现对百度指数趋势的分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取数据

使用chrome浏览器的开发者工具,获取请求数据。注意一共有两个请求,https://index.baidu.com/api/SearchApi/index 和 https://index.baidu.com/Interface/ptbk。
在这里插入图片描述
在这里插入图片描述

编写代码解密

import json

#解密算法
def decrypt(ptbk, index_data):
    n = len(ptbk)//2
    a = dict(zip(ptbk[:n], ptbk[n:]))
    d = "".join([a[s] for s in index_data])
    return d

def convertdata(e):
    if len(e) == 0:
        #空值处理
        return 0
    else: 
        return int(e)

def get_index_data(indexData,ptbkData):
    data = json.loads(indexData)
    # print(data)
    uniqid = data['data']['uniqid']
    print(uniqid)
    data2 = json.loads(ptbkData)
    ptbk = data2['data']
    print(ptbk)
    result = {}

    for userIndexe in data['data']['userIndexes']:
        name = userIndexe['word'][0]['name']
        tmp = {}
        index_all = userIndexe['all']['data']
        index_all_data = [ convertdata(e) for e in decrypt(ptbk, index_all).split(",")]
        tmp["all"] = index_all_data
        index_pc = userIndexe['pc']['data']
        index_pc_data = [convertdata(e) for e in decrypt(ptbk, index_pc).split(",")]
        tmp["pc"] = index_pc_data
        index_wise = userIndexe['wise']['data']
        index_wise_data = [convertdata(e)
                           for e in decrypt(ptbk, index_wise).split(",")]
        tmp["wise"] = index_wise_data
        result[name] = tmp
    return result

# pc:表示pc端,wise表示移动端,all表示pc端+移动端
# 从浏览器的请求数据复制过来就可以解密
data1 = r'{"status":0,"data":{"userIndexes":[{"word":[{"name":"\u65b0\u51a0","wordType":1}],"all":{"startDate":"2022-01-07","endDate":"2022-11-16","data":"+dGC+dGC+D6ChB+C+VGC+DVC+GBChlBC+6lC+6hC+V6ChlBC+dBC+dDC+BVC++VC+llC+ZDC+Z+C+ZhC++BC++GCBVhCBDDCBBVCBD+C+llCBGBCBDZCBDVC+lZC+6lC+lVC+B6C+BVC+hVC+BhCBVBC+hlC++hC++ZC+lZC+dlC+BZC+BGC+hGC+ZGC+h+C+B+C+ldC+h+C++ZC+ZdC+BVC++ZC+DZC+dBC+BGC++GC+d6C+GBC+G6ChZhCZVGCZ6DCD+DCVGGCDdhCDVlCBBZhCBlh+CBllhCVdZCDZ6CdVdCdBVCdDBC66VCZ6ZC6l+C6BDCZhdCZdGC6BdC6BhCZ6dChV6ChGZCZBlCZlDChVGChdVChZZChDlChD6ChdlChZ+Ch6DChl+C+G+C+dVC+V6C+GBC+DGC+6hC+6GC+hZC+D6C+G6C+6GC+dBC+6lC+ZDC+hZC+lZCBVDCBV6C+hDC+ZVC+ZZC+lDC++BC+l6C+hZC+hZC+BDC+ZGC+llC+l6C+lDC+lVCBVhCBVZCBDdCBDhC+lhC+hlC+ldCBDlCBDDCBDVCBGhCBDdCBDGCBDZCBGBCBGDCBddCBDlCBVhC+BGC+h+C+ZGC+6+C+lhCBDGCBGVCBD6CBGlCBDGCBVBCBDhCB6GCB6VCBVGC+ldCBD6C+lGCBD+CBGdCBGBCB6ZCBGZCBDVCBGDCBD6CBdDC+BhCBVdCBG+CBVGC+lZC+h6C+BZC+ldC+6lCBGBCBVDC+hZC++GCBDdCBGGC+BhCBDVCB6GCBVdCBGdCBZ6CBd6CBVlCBGZC+BBC+B6CBVZCBGBCB6ZCBG+CBGZCBZdCBdBCBDhCBdGCBGlCBD6C++DC+lhC+lhCBVBCBVGCBGlC+hZC+l6CBDlC+hhC++hCBV6CBGDCBDVCBGhCBD6C+BZC+BGCBdGCBdVCBVVCBV6CBdVCBVDC+lGCBD6C+lGCBVDCBDlCBVVCBVdCBD6CBDhCBGDCBD+CBDZCBD+CBDVCBD6CB6dCBdZCBDlCBGGCBdDCBG+CBddCB6GC+llCBGBCBVlCBV6C+ldC+llCBd+CBGdCBGDCBVhCBDVCBh6C+lGCBDlCBDGCBVDCBV6CBVZCBD6CBDDCBDGCBDBCBDZCBD+CBGhCBGDCBdDCB66CZDVCdBZCdlGCdhGC6lVC6h+CZDDCZ6VC6lGCZGhChVhChG6C+DBChB6C+VVC+DGCh+DC+VVCh+BChlBC+dlC+dlChZdChZGChB6"},"pc":{"startDate":"2022-01-07","endDate":"2022-11-16","data":"DGCGZCD6CBlZCBB+CBl+CV6CBBdCddCG+CBBdCBBZCDhCBlBCD6CdDCG+CD6CDGCBl+CDhCGDCdhCdhCCdhCGlC6VC6VCdBCdhCDlCGZCDhCDGCVBCGlC6VCDhCGZCVhCDGCV6CdhCGZCD+CDGCDVCDlCDlCGlCG+CDGCDhCGdCGDCDGCddCGlCV6CBlDCBlBCBBdCB+GCBBlCB+6C+6GCBVZC+lBC+D+C+llCB6GCB+lC+llCBGGCBGhCBDGCBZlCBBlCBlDCBZZCBZlCBZdCB6GCB+hCB+6CVGCDlCV6CBBdCBhhCBldCVBCVBCBh6CBBlCBldCBhGCBldCdDCGdCVVCVGCDVCDhCVBCGlCBlDCVVCVBCVhCDhCVBCdZC6VCddCdZCGdCV6CVGCGlCDhCGlCD+CG+CD+CVhCG+CdBCDhCGlCGdCdhCdBCdBCGDCGDCGdCdDCddCG+CdDCdBCGDCddCdhCdBCdBC6VCdDCGZCDlCDlCGDCdDCdZCddCG+CdBCdDCdhCdZCdBC6VCddCGDCGdCdDCdhCdBCdhCdBCdZCG+CdhCdDCdhCdDCdDCdZCDlCD+CDlCdhC6VCGdCdhCdZCDlCG+CdZCdZCD+CddCddCdDCdDCdBC6VCGDCGZCG+CdZCdDCdBCdBCG+CdBC6GCGlCdBCdhCdBCGdCDVCG+CD+CdDCdBCdBCD6CGlC6VCD+CGdCGdCdDCGdCdZCdZCdhCDhC6VC6VCGZCDlCG+CGlCGdCdZCGdCDhCG+CDlCdDCddCdDCddCdBCdBCGlCGlCdhCdBC6VCGlCdDCdhCddCdZCdZCddCddCdDCDlCGdCGZCdhCdBCdhCGlCddCCdZCdBCGZCDlCD+CD+CG+CddCddCdZCGDCGlCdDCG+CddCdZCDhCBhVCB6lCB6VCB+6CBBlCV6CG+CBhGCBh6CBl+CBBZCD+CV6CGDCVGCDVCVhCBldCDVCD+CGZCBh6CBlZCV6"},"wise":{"startDate":"2022-01-07","endDate":"2022-11-16","data":"BDlCBVhC+llC+lDCBD6CBDGCBGdCBD6CBDZCBDBCBGVCBDGCBGDCBdGCBhZCBdBCB+DCBdhCB66CBZBCBhDCBZVCBhlCB+6CBBVCBBVCBhlCBB+CB+6CB+DCBZBCBGlCBh6CBh+CBh+CBZDCBZhCBh+CBZGCBZVCBhBCBBGCBd6CB6BCBZhCB66CBdlCBZhCBh+CB+dCBd+CB6+CB6VCBhdCBZDC+ldCBGZCB6BCB6GCBGlCBdhCBGZC++GChGlChZDCGlhCG+lCddVCdDVCDdBCDh+CDZdCDZZCdZ6C6BVCZZdCZVZCZBVChZZChVZChGZC+VdCh+BCh6VChVlChhBC+VDC+VZChB6C+V+C+dZC+dhC+6hC+DVC+6lC+6lC+hdC++BCBVdC+lZCBVhCBVdCBGZCBVDCBGlCBddCBdZCBGGCBGdCBddCBdDCBdGCB6GCBGlCBZ6CBh+CBhBCBd+CB6ZCBZGCBhDCBhDCBh6CB6+CBd+CBhdCB6ZCB+DCBZZCB+6CBhVCBBGCBhBCB+6CB++CB+6CB6+CBhlCBB+CB++CBBGCBl6CB+6CBlVCBBDCBlDCBBGCBl6CB+BCB+6CBZhCB6+CBdGCBGZCBh6CB+hCBBhCBBhCBlVCBBVCB+DCBBVCVdCBllCBhBCB+DCBlVCBhVCBBVCBB6CBlDCVhCBBlCBBGCBB6CBBGCBl6CBZ6CB+DCBlDCBBGCB++CB66CB6BCBZGCBGZCBlDCBhZCB6ZCB66CB++CBBhCBhBCB+hCVBCB+DCBlDCDZCBldCBB+CBllCBhVCB6BCB+dCBBlCVhCBllCBBhCDVCVBCB++CBlZCBlVCBlVCBhVCBhBCB+BCB+hCBhdCBlVCBZVCBh6CB+BCB6BCBZGCBBVCBBlCBBhCBlVCB+BCB6BCBhZCBlDCBBlCB+6CBB6CVGCB+DCBhBCB+BCBhBCBB6CBlDCBBVCB+DCBBVCBB6CBB+CB+BCB+hCBB+CBBVCB++CV6CBl6CBBlCBlVCBl6CBldCBl+CVhCBhZCBl6CB++CBB6CBhlCB+dCVVCBB6CBB6CB+hCB+hCBh6CBZhCBBVCBBhCBBDCBBhCBB+CBBhCB++CB+BCBBGCBldCBB+CBl6CBldCBl+CVBCZldCZG6CZ6GCZGDChDZCZ++ChVhChDGChGlChhDC+VBC+dBCBVVC++lC++BCBVlC+hVC+ldC+B6C+B+CBGDCBDdC+BBC+ZhC++l"},"type":"day"}],"generalRatio":[{"word":[{"name":"\u65b0\u51a0","wordType":1}],"all":{"avg":264,"yoy":-1,"qoq":1},"pc":{"avg":83,"yoy":-6,"qoq":-3},"wise":{"avg":180,"yoy":"-","qoq":3}}],"uniqid":"5c0b747797bf50e0028071f210549e13"},"logid":2197115005,"message":0}'
data2 = r'{"status":0,"data":"mVC+ZwB6Dlh7Gd,-9,24%15803+76."}'
print(get_index_data(data1,data2))

解密结果

在这里插入图片描述

参考文章

https://blog.51cto.com/u_11866025/5714481

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值