最新动态
Python 可视化近 90 天的百度搜索指数 + 词云图
2024-11-01 11:50

cba2d40b2d3a1ca82842ff95d961a594.gif

Python 可视化近 90 天的百度搜索指数 + 词云图

作者 | 叶庭云

来源 | AI庭云君

在实际业务中我们可能会使用爬虫根据关键词获取百度搜索指数历史数据,然后进行对应的数据分析。

百度指数,体验大数据之美。但要获取百度指数相关的数据,困难如下

  • 不是静态网页,并且百度指数的 URL 请求地址返回的数据,不能直接利用 json 解析提取的数据,而是加密之后的数据和uniqid,需要通过 uniqid 再次请求对应的 URL 以获取用于解密的密钥,然后在前端页面进行解密,然后再渲染到折线图中。

  • 必须要在百度指数页面登录百度账号(获取cookie)。

  • 需要将前端解密代码转化为 Python 后端代码,或者直接利用 execjs 直接执行 Javascript 代码也可以。

本文以获取关键词(北京冬奥会、冬奥会开幕式:近 天的百度搜索指数数据为例,讲解利用 爬虫根据关键词获取百度搜索指数历史数据的过程(以冬奥会为例,然后对冬奥会近 90 天的搜索指数可视化,以及采集媒体报道的材料做词云图。

  • 环境:Anaconda + Pycharm

  • 主要用到的库:requests、execjs、datetime、pandas、matplotlib、stylecloud

没有百度账号的话需要先注册,然后进入百度指数官网

https://www.baidu.com/s?wd=百度指数

092c29e1af5f0e9d0b41dedeb48e4894.png

搜索冬奥会,选择近 90 天,即可看到近 90 天冬奥会搜索指数的折线图

0c50f86cb568b2b5bcf436c05c6cb6cb.png

最终要做的就是获取这些搜索指数数据,保存到本地Excel。

首先要获取你登录之后的cookie(必须要有,否则无法获取到数据,具体的 cookie 获取如下图

ba1b148c4768db132f9056c22fa11594.png

分析可以找到 json 数据的接口,如下所示

6ed6611b735942d084c0a2a662c08d1d.png

Request URL 里,word参数后是搜索的关键词(只是汉字被编码了,days=90,代表近 90 天的数据,从当前日期的前一天往前推一个月,可以根据需要修改 days 获取更多的数据或者更少的数据。将 Request URL 贴到浏览器中访问查看(查看 JSON 数据网页,这时有个 JSON Handle 这样的插件会很方便

4e7a01186e6194869f858a2a8b9e7ec9.pngeabba89b954075438987de03ff359aa1.png

可以看到以下数据

84cd61aaad7bc67c5f85a24c790962b1.gif

经过对 all,pc,wise 对应的数据进行解密,和搜索指数的折线图显示的数据对比,发现 all 部分的数据就是搜索指数的数据。本次请求返回的数据都在这里了,还可以看到uniqid,而且每次刷新加密的数据和 uniqid 都会变。

a54746fceadc9f459e730615325c49e3.png

经过多次分析,发现请求数据的 url 下面的 uniqid 出现在了这个 url 中,如上所示。

因此需要先对请求数据对应的 url 进行数据获取,解析出搜索指数对应的加密数据和uniqid,然后拼接 url 获取密钥,最后调用解密方法解密即可获取到搜索指数的数据。

找到了对应的url,爬虫基本思路还是那样:发送请求、获取响应、解析数据、然后对数据进行解密、保存数据。

Python代码

fc8ce1674d66ef81a6f2193e0b43e485.gif

解密部分也可以直接利用 execjs 执行 Javascript 代码实现,如下所示

Python爬虫成功运行,数据保存为冬奥会搜索指数数据 90 天.xlsx。

0ff3f8dc7863ba0031bc291555fa352a.png
请添加图片描述

冬奥会开幕式、北京冬奥会搜索指数近几天近似直线飙升。说明大家都非常关注啊。

2281a0d54289321a39c43c9af9b716f6.png c88bcea65fb987082f6f8bca04b97503.png d990f341f4d5b3b42a3a26ea38104182.png

这里采集一些文本材料,再做个词云图看看。

如果说 年的奥运会,中国向世界展现的是传统的文化之美!那么这一次冬奥会,中国完美地向世界展现了什么叫科技的日新月异与腾飞

3be4c5d37511e352f8ab9895e9513df9.png

今年冬奥会开幕式真的太好看啦,惊艳全球

总结

  • Python爬虫:根据关键词获取百度搜索指数历史数据

  • 解析 JSON 数据,加密数据的解密,数据保存到Excel

  • matplotlib:百度搜索指数的可视化

  • stylecloud:绘制词云图

3a9012f4a046c3a328c0a707c99f1d49.gif

958fdf46998e4d1cbb43e3b8414ecb36.png

资讯

谷歌使出禁用2G大招

技术

干货满满的python实战项目

25个Python文本处理案例

11款可替代top命令的工具

eab160160150a4fd691f7b4e7a6e7628.png

分享

acbe3b007bf4f133ba622d9668b58d40.png

点收藏

20c502a9c8c2667a3c6a50c43582acc1.png

点点赞

    以上就是本篇文章【Python 可视化近 90 天的百度搜索指数 + 词云图】的全部内容了,欢迎阅览 ! 文章地址:http://syank.xrbh.cn/quote/6877.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 迅博思语资讯移动站 http://kaire.xrbh.cn/ , 查看更多