1. 项目简介
百度指数是由百度提供的一个用于测量特定关键词或搜索词在百度搜索引擎上的搜索量和搜索趋势的工具。它通过分析用户在百度上的搜索行为和搜索量,提供了关键词的搜索指数和相关数据,以反映关键词的热度和受欢迎程度。通过百度指数,用户可以了解到特定关键词在一段时间内的搜索趋势、地域分布以及与其他关键词的对比情况。
不少社会研究分析都用到了百度指数,百度指数提供了大量的搜索行为数据,反映了人们在百度搜索引擎上的兴趣、关注和需求。这些数据可以帮助我们了解社会话题、事件和趋势,从而进行相关的社会科学研究。
你肯定见过像下面这样的动态排序图,那么就可以通过百度指数获取某一日期区间的数据,做出如某时间段内多个品牌热度对比的动态排序图。
那么直接开始正题,我们来到百度指数官网:百度指数
可以看到百度官方也贴心的给出了统计图表,便于观察数据,鼠标光标会显示具体某一天的数据,这说明我们可以获取到具体到天
的数据。
同时我们可以选择多个关键词选择时间区间进行对比,另外还可设定数据地区,用户设备种类等,接下来我们具体分析。
2. 分析思路
2.1. 抓包
老规矩,首先按F12
打开开发者工具,查看网络请求
很容易发现,接口地址为:https://index.baidu.com/api/SearchApi/index?
查看请求标题后发现这是一个GET请求,负载数据直接拼串在接口链接后面即可。
接着我们分析响应的数据:
"startDate"
和"endDate"
对应年份区间;
pc
wise
all
对应不同设备的数据;
data
也就是我们需要的数据,但是很显然加密了,因此我们后续还需解密。
2.2. 解析数据
那么,假设我们得到了这组数据,即一个字典格式的json
文件,我们可以将其格式化保存,并读取各个键值对数据。
但问题在于data
中的数据:kwwQkkoQwFkQkwoQwFGQwFGQwF-Q
很显然是加密的,我们即便获取了这样的数据也无法阅读,但是网页上显示到的数据又是正常显示,这说明网页后端必然存在解密的js代码。
我们回过头来继续观察: