利用Python爬取百度指数中需求图谱的关键词
文章目录
- 需求背景
- 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爬取百度指数中需求图谱的关键词相关推荐
- Python爬取百度指数搜索结果,查看你想了解的热点信息吧
今天无意间搜索问题的时候跳转到了百度指数这里,索性就打开来看看,下面是首页截图: 这里你可以自己输入自己想要查询的人物.事件等等,anything,只要是你感兴趣的都可以,有一种感觉就是你认为是热点的 ...
- 利用python爬取教务系统中成绩
最近在学习python,发现通过python爬取网页信息确实方便,以前用C++写了个简单的爬虫,爬取指定网页的信息,代码随便一写都几百行,而要用python完成相同的工作,代码量相当少.前几天看到了一 ...
- 利用python爬取百度翻译内容
利用python可以实现对百度翻译内容的爬取,具体过程如下: 前期工作 本程序的测试环境为python3.5,Chrome浏览器.进入百度翻译的页面,点开F12进入开发者调试工具,点击network, ...
- python爬取百度翻译视频_利用python爬取百度翻译内容
利用python可以实现对百度翻译内容的爬取,具体过程如下: 前期工作 本程序的测试环境为python3.5,Chrome浏览器.进入百度翻译的页面,点开F12进入开发者调试工具,点击network, ...
- python爬取app图片_利用python爬取斗鱼app中照片方法实例
前言 没想到python是如此强大,令人着迷,以前看见图片总是一张一张复制粘贴,现在好了,学会python就可以用程序将一张张图片,保存下来. 最近看到斗鱼里的照片都不错,决定用最新学习的python ...
- python爬取百度指数
def baidu(keyword):"""百度指数"""headers = {'User-Agent': 'Mozilla/5.0 (Ma ...
- python爬取微信运动_如何利用Python爬取微信运动中各个好友的运动信息
2018-11-20 回答 主要思路 从ui获取文本信息是最为简单的方法,于是应该优先逆向ui代码部分. 逆向微信apk 首先解包微信apk,用dex2jar反编译classes.dex,然后用jd- ...
- python爬取百度贴吧
利用python爬取百度贴吧的网页,输入贴吧名,起始页,终止页,爬取索要爬取的页面 贴吧 ''' import urllib.request import urllib.parse import ti ...
- python爬百度翻译-Python爬取百度翻译(利用json提取数据)
本篇文章给大家带来的内容是关于Python爬取百度翻译(利用json提取数据),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 工具:Python 3.6.5.PyCharm开发工具. ...
最新文章
- 删除文件中指定的一行
- K-means聚类自定义距离计算
- php不发送referer,php – 注意:未定义的索引:HTTP_REFERER
- 易混淆知识点(2):display:none与visible:hidden的区别
- 《虚无的十字架》—— 读后总结
- 8.1 Zend_View
- C# 异步定时器,可以重载; System.Timers.Timer
- python语言数值操作符_Python之组合数据类型、逻辑操作符、控制流语句、算术操作符...
- 易筋SpringBoot 2.1 | 第十六篇:SpringBoot通过JDBC访问数据库
- 如何使用EDI系统解决对接多工厂的问题?
- 计算机类课题研究方法,课题研究方法
- 使用python中的zellers一致性计算星期几
- Python数据分析之探索性分析(多因子复合分析)
- PVZ系列六 | 僵尸动画转换
- 又一个 Jupyter 神器,操作 Excel 自动生成 Python 代码
- Linux 桌面虚拟化技术 KVM
- ros系统操纵机器人_机器人操纵的关键点表示
- 计算机音乐monster,【MJJ】【MJ音乐汇总系列】Monster 怪物
- Group by隐式排序,一个优美的BUG
- 利用最小二乘法做线性回归