简介
通过百度指数,以及python的baidux模块和 flourish 制作可视化动态图表,实现数据的可视化。
安装baidux模块
打开pycharm 输入以下命令
pip install baidux
用法
打开百度指数,登录后,找到index.html此条 GET 请求,并复制此条请求 headers 里的 cookies,注意复制完全!使用样例如下:
from baidux.utils import test_cookies
from baidux import config
from baidux import BaiduIndex, ExtendedBaiduIndex
cookies = """这里放cookie"""
# 测试cookies是否配置正确
# True为配置成功,False为配置不成功
print(test_cookies(cookies))
keywords = [['英雄联盟'], ['冠军杯', '英雄联盟'], ['抑郁', '自杀', '明星']]
# 获取城市代码, 将代码传入area可以获取不同城市的指数, 不传则为全国
# 媒体指数不能分地区获取
print(config.PROVINCE_CODE)
print(config.CITY_CODE)
# 获取百度搜索指数(地区为山东)
baidu_index = BaiduIndex(
keywords=keywords,
start_date='2018-01-01',
end_date='2019-01-01',
cookies=cookies,
area=901
)
for index in baidu_index.get_index():
print(index)
# 获取百度媒体指数
news_index = ExtendedBaiduIndex(
keywords=keywords,
start_date='2018-01-01',
end_date='2019-01-01',
cookies=cookies,
kind='news'
)
for index in news_index.get_index():
print(index)
# 获取百度咨询指数
feed_index = ExtendedBaiduIndex(
keywords=keywords,
start_date='2018-01-01',
end_date='2019-01-01',
cookies=cookies,
kind='feed'
)
for index in feed_index.get_index():
print(index)
结果
百度搜索指数: {'keyword': ['抑郁', '自杀', '明星'], 'type': 'wise', 'date': '2018-06-10', 'index': '1835'}
百度媒体指数: {'keyword': ['抑郁', '自杀', '明星'], 'date': '2018-12-29', 'index': '0'}
百度咨询指数: {'keyword': ['抑郁', '自杀', '明星'], 'date': '2018-12-29', 'index': '1102911'}
技巧
如需导出txt文件则 添加以下代码
class Logger(object):
def __init__(self, filename="Default.log"):
self.terminal = sys.stdout
self.log = open(filename, "a")
def write(self, message):
self.terminal.write(message)
self.log.write(message)
def flush(self):
pass
sys.stdout = Logger('文件名称.txt')
for index in baidu_index.get_index():
print(index)
- 不限制传入关键词的数量
- 搜索指数最早的数据日期为2011-01-01
- 开始时间超过最早的数据日期会导致数据不准确
- 初始化类时传入area可以查询指定区域的百度指数, 默认为全国
- 有些代码不是特别严谨, 有需要请自己DIY
- 媒体指数不支持细分地域查询
- 当查询百度指数未收录的关键词时也会出现报错,这个之后会修复
如需制作可视化动态图表可以访问以下网站
Flourish | Data Visualisation & Storytelling
视频教程在这儿:一分钟制作百度指数可视化图表_哔哩哔哩_bilibili
调入数据以后 即生成动态图表啦。