百度指数如何分析数据(百度指数分析结论)

  今天给大家演示如何使用python直接采集百度指数的数据。

  百度指数(Baidu Index) 是以百度海量网民行为数据为基础的数据分析平台,它能够能够告诉用户:某个关键词在百度的搜索规模有多大,一段时间内的涨跌态势以及相关的新闻舆论变化,关注这些词的网民是什么样的,分布在哪里,同时还搜了哪些相关的词。

  百分十先生分享过如何使用uiautomation采集百度指数:百度指数 如何批量获取?

  不过个人感觉这方法好像有点杀鸡用牛刀,对于网页使用selenium完全足以,当然对于专门针对selenium进行反爬检测的网页就需要特殊修改。

  本文不演示如何使用UI自动化工具采集百度指数,为了采集更简单将直接读取并解析接口。

  关于uiautomation,PC端的UI自动化可以查看教程:

  打开百度指数发现查看指数必须要先登录,比如我们对比一个python和Java最近一周的指数:

  百度指数如何分析数据(百度指数分析结论)插图

  当鼠标移动到每天的坐标上时会显示当天的数据,例如:

  百度指数如何分析数据(百度指数分析结论)插图1

  如果我们采用UI自动化的方式,至少得模拟移动到每天的坐标。

  打开开发者工具,重新查询发现获取数据的接口:

  百度指数如何分析数据(百度指数分析结论)插图2

  实际的指数数据就存储在这个data字段中,但是以某种加密方式加密了。

  然后注意第二个接口的某个参数与当前接口返回的数据某个值一致。

  此时我全局搜索decrypt,找到了加密函数:

  百度指数如何分析数据(百度指数分析结论)插图3

  此时打上断点重新搜索,可以看到传入该函数的t参数与ptbk接口返回的值一致:

  百度指数如何分析数据(百度指数分析结论)插图4

  说明我们只需要将这段js翻译为python来解密加密数据即可。

  下面我们总结一下指数数据获取的思路:

  通过index接口获取uniqid和加密后的指数数据userIndexes

  通过ptbk接口传入uniqid获取密钥key

  通过解密函数根据密钥key解密userIndexes

  下面我们分别用代码来实现,首先获取指数数据:

  cookie需要在登录后复制粘贴获取,就是请求中的这段字符串(直接复制粘贴即可):

  百度指数如何分析数据(百度指数分析结论)插图5

  结果:

  这些数据中,wise表示移动端,all表示pc端+移动端。userIndexes是指数详情数据,generalRatio是概览数据。

  下面我们只关心各个关键字的整体表现。

  下面我们获取uniqid并获取ptbk:

  下面我将下面这段Js代码翻译为python:

  python代码:

  然后我们遍历每个关键字解密出对应的指数数据:

  检查实际网页中的数据发现确实一致:

  百度指数如何分析数据(百度指数分析结论)插图6

  那么我们就可以轻松获取任意指定关键字的指数数据。下面我将其整体封装一下,完整代码为:

  测试一下:

  结果非常不错。

  这篇文章出自小小明的博客,原文链接:

投稿

qq等级最高的人是谁(qq等级最高的qq号是多少)

2023-2-27 22:39:00

投稿

nba十大中锋排名(NBA现役最强的十大中锋)

2023-2-27 22:45:00

搜索