文章目录

  • 需求背景
  • 0、获取cookies
  • 一、使用datetime计算查询的日期
  • 二、爬取需求图谱关键词
  • 三、扔进csv里
  • 总结

已更新!!!


之前有小伙伴在评论里反应代码有点问题,今天看了下,报错原因是百度指数现在要求必须要登录才能查询,后续有空会更新下代码,把模拟登录加上


需求背景

因为百度指数中需求图谱的关键词只以一周为单位显示,所以为了将更多天数的关键词汇总,写了以下代码帮助大家~

ps:我是工管的,Python是我业余学的,所以代码写的比较丑陋请见谅…


0、获取cookies

1.打开百度指数:百度指数
2.打开检查,如图:

3.复制cookies的内容 填入代码中 headers

百度指数的params如下所示:

一、使用datetime计算查询的日期

百度指数的params如下所示:

'wordlist[]': '原神',#这里修改关键词
'datelist': str(next_time.strftime('%Y%m%d'))#开始日期

为了计算datelist,所以需要用到datetime库。具体实现代码如下所示:

import datetime
start_time=datetime.date(2020,9,6)#开始爬取日期的上一周
for i in range (10):next_time=start_time+datetime.timedelta(7)#+一周print(next_time.strftime('%Y%m%d'))start_time = next_time

二、爬取需求图谱关键词

它的数据是在XHR里的json格式,所以需要用到request库转换下,具体代码如下所示:

url='http://index.baidu.com/api/WordGraph/multi'
params = {'wordlist[]': '原神','datelist': str(next_time.strftime('%Y%m%d'))
}
res_index = requests.get(url, params=params)
json_index = res_index.json()
list_index = json_index['data']['wordlist'][0]['wordGraph']
for index in list_index:keyword_list = index['word']

三、扔进csv里

因为扔进一个csv里比较简单且会导致数据颗粒度太粗,所以我这里想的是将一个月的所有关键词放进一个csv文件里,然后下个月的所有关键词放到新的csv文件里,并且在文档名称中加上月份区分下,具体实现代码就直接给全部的了:

#coding=gbk
from urllib.parse import quote, unquote, urlencode
import csv,datetime
import time
import requests
url='http://index.baidu.com/api/WordGraph/multi'#百度指数-需求图谱的url
word = '原神'#这里修改关键词
encode_data = quote(word)#encode处理
headers = {'Accept': 'application/json, text/plain, */*','Accept-Encoding': 'gzip, deflate, br','Accept-Language': 'zh-CN,zh;q=0.9','Connection': 'keep-alive','Cookie':'',#!!!填自己的cookies!!!其他复制即可'Host': 'index.baidu.com','Referer': 'https://index.baidu.com/v2/main/index.html','sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="102", "Google Chrome";v="102"','sec-ch-ua-mobile': '?0','Sec-Fetch-Dest': 'empty','Sec-Fetch-Mode': 'cors','Sec-Fetch-Site': 'same-origin','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'
}
start_time=datetime.date(2022,3,27)#开始爬取日期的上一周
while True:#这里不想爬太多可以改为for循环next_time = start_time + datetime.timedelta(7)#+一周if next_time.month ==6 and next_time.day==22:#因为目前这里截止到3.7号,所以3.14时停止循环breakelse:if next_time.month == start_time.month :#如果月份都是一样的,扔进一个csv文件with open('baiduzhishu' + str(start_time.month) + '.csv', 'a', newline='', encoding='gbk') as f:writer = csv.writer(f)params = {'wordlist[]': str(word),'datelist': str(next_time.strftime('%Y%m%d'))#开始日期}res_index = requests.get(url, params=params,headers=headers)json_index = res_index.json()list_index = json_index['data']['wordlist'][0]['wordGraph']for index in list_index:keyword_list = index['word']writer.writerow([keyword_list])time.sleep(15)else:with open('baiduzhishu' + str(next_time.month) + '.csv', 'a', newline='', encoding='gbk') as f:#进入新的月份时新建一个csv文件writer = csv.writer(f)params = {'wordlist[]': '原神','datelist': str(next_time.strftime('%Y%m%d'))}res_index = requests.get(url, params=params,headers=headers)json_index = res_index.json()list_index = json_index['data']['wordlist'][0]['wordGraph']for index in list_index:keyword_list = index['word']writer.writerow([keyword_list])time.sleep(15)start_time = next_time

总结

最终实现的结果如图所示:

后续这些数据可以直接利用excel分析,也可以分开或者汇总放入https://wordart.com/这个网站里制作词云。

利用Python爬取百度指数中需求图谱的关键词相关推荐

  1. Python爬取百度指数搜索结果,查看你想了解的热点信息吧

    今天无意间搜索问题的时候跳转到了百度指数这里,索性就打开来看看,下面是首页截图: 这里你可以自己输入自己想要查询的人物.事件等等,anything,只要是你感兴趣的都可以,有一种感觉就是你认为是热点的 ...

  2. 利用python爬取教务系统中成绩

    最近在学习python,发现通过python爬取网页信息确实方便,以前用C++写了个简单的爬虫,爬取指定网页的信息,代码随便一写都几百行,而要用python完成相同的工作,代码量相当少.前几天看到了一 ...

  3. 利用python爬取百度翻译内容

    利用python可以实现对百度翻译内容的爬取,具体过程如下: 前期工作 本程序的测试环境为python3.5,Chrome浏览器.进入百度翻译的页面,点开F12进入开发者调试工具,点击network, ...

  4. python爬取百度翻译视频_利用python爬取百度翻译内容

    利用python可以实现对百度翻译内容的爬取,具体过程如下: 前期工作 本程序的测试环境为python3.5,Chrome浏览器.进入百度翻译的页面,点开F12进入开发者调试工具,点击network, ...

  5. python爬取app图片_利用python爬取斗鱼app中照片方法实例

    前言 没想到python是如此强大,令人着迷,以前看见图片总是一张一张复制粘贴,现在好了,学会python就可以用程序将一张张图片,保存下来. 最近看到斗鱼里的照片都不错,决定用最新学习的python ...

  6. python爬取百度指数

    def baidu(keyword):"""百度指数"""headers = {'User-Agent': 'Mozilla/5.0 (Ma ...

  7. python爬取微信运动_如何利用Python爬取微信运动中各个好友的运动信息

    2018-11-20 回答 主要思路 从ui获取文本信息是最为简单的方法,于是应该优先逆向ui代码部分. 逆向微信apk 首先解包微信apk,用dex2jar反编译classes.dex,然后用jd- ...

  8. python爬取百度贴吧

    利用python爬取百度贴吧的网页,输入贴吧名,起始页,终止页,爬取索要爬取的页面 贴吧 ''' import urllib.request import urllib.parse import ti ...

  9. python爬百度翻译-Python爬取百度翻译(利用json提取数据)

    本篇文章给大家带来的内容是关于Python爬取百度翻译(利用json提取数据),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 工具:Python 3.6.5.PyCharm开发工具. ...

最新文章

  1. 删除文件中指定的一行
  2. K-means聚类自定义距离计算
  3. php不发送referer,php – 注意:未定义的索引:HTTP_REFERER
  4. 易混淆知识点(2):display:none与visible:hidden的区别
  5. 《虚无的十字架》—— 读后总结
  6. 8.1 Zend_View
  7. C# 异步定时器,可以重载; System.Timers.Timer
  8. python语言数值操作符_Python之组合数据类型、逻辑操作符、控制流语句、算术操作符...
  9. 易筋SpringBoot 2.1 | 第十六篇:SpringBoot通过JDBC访问数据库
  10. 如何使用EDI系统解决对接多工厂的问题?
  11. 计算机类课题研究方法,课题研究方法
  12. 使用python中的zellers一致性计算星期几
  13. Python数据分析之探索性分析(多因子复合分析)
  14. PVZ系列六 | 僵尸动画转换
  15. 又一个 Jupyter 神器,操作 Excel 自动生成 Python 代码
  16. Linux 桌面虚拟化技术 KVM
  17. ros系统操纵机器人_机器人操纵的关键点表示
  18. 计算机音乐monster,【MJJ】【MJ音乐汇总系列】Monster 怪物
  19. Group by隐式排序,一个优美的BUG
  20. 利用最小二乘法做线性回归

热门文章

  1. 乐优商城学习笔记五-商品规格管理
  2. 深入理解 Linux 内核中的 RCU 机制
  3. 嵌入式培训怎么学?零基础怎么学习嵌入式?
  4. PS图形,图层、制作手机流程(1)
  5. 食品批发销售必用的仓库进销存系统?
  6. android 商品倒计时,Android计时与倒计时实现限时抢购的5种方法
  7. java web 过滤器 拦截器 监听器_Java中的拦截器和过滤器,可不是同一个东西
  8. 3d模型云管理与服务
  9. linux驱动开发简介
  10. [IJCAI-17 口碑商家客流量预测]