python获取度娘热搜数据并保存成Excel 您所在的位置:网站首页 excel表格视频教程全集百度云 python获取度娘热搜数据并保存成Excel

python获取度娘热搜数据并保存成Excel

2023-06-21 03:27| 来源: 网络整理| 查看: 265

python获取百度热搜数据 一、获取目标、准备工作二、开始编码三、总结

一、获取目标、准备工作

1、获取目标: 本次获取教程目标:某度热搜

2、准备工作

环境python3.xrequestspandas

       requests跟pandas为本次教程所需的库,requests用于模拟http请求,pandas用于数据处理(将结果保存为Excel)。

在Chrome浏览器中打开需要请求的页面,然后F12打开浏览器的控制台。点击Network选择网络,然后再点击XHR。找到相应的XHR请求,就能获取到热搜数据接口了。 二、开始编码 导入所依赖的库 import requests import pandas as pd 构造一个请求头: browse_header = { "Accept": "application/json, text/plain, */*", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36", "Host": "top.baidu.com", "Referer": "https://top.baidu.com/board", } 定义一个请求接口,即数据地址 url = "https://top.baidu.com/api/board?platform=wise&tab=realtime" 发送请求,由于接口返回的是JSON格式,所以这里一步到位,将响应结果也转成JSON格式。 json = requests.get(url, headers=browse_header).json() 注意:某度热搜有两种热搜,一个置顶热搜、一个普通热搜,所以我们得分开获取。 # 爬取置顶热搜 top_content_list = json['data']['cards'][0]['topContent'] # 爬取普通热搜 content_list = json['data']['cards'][0]['content'] 然后再分别进行json解析,对应的字段(标题、排名、热搜指数、描述、链接地址)。 df = pd.DataFrame( # 拼装爬取到的数据为DataFrame { '热搜标题': title_list, '热搜排名': order_list, '热搜指数': score_list, '描述': desc_list, '链接地址': url_list } ) df.to_excel('百度热搜榜.xlsx', index=False) # 保存结果数据

完成代码:

import requests import pandas as pd browse_header = { "Accept": "application/json, text/plain, */*", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36", "Host": "top.baidu.com", "Referer": "https://top.baidu.com/board", } url = "https://top.baidu.com/api/board?platform=wise&tab=realtime" json = requests.get(url, headers=browse_header).json() # 爬取置顶热搜 top_content_list = json['data']['cards'][0]['topContent'] print(top_content_list) # 爬取普通热搜 content_list = json['data']['cards'][0]['content'] print(content_list) title_list = [] order_list = [] score_list = [] desc_list = [] url_list = [] for top_item in top_content_list: title_list.append(top_item.get('word')) order_list.append("置顶") score_list.append(top_item.get("hotScore")) desc_list.append(top_item.get("desc")) url_list.append(top_item.get("url")) index = 0 for content in content_list: index += 1 title_list.append(content.get('word')) order_list.append(index) score_list.append(content.get("hotScore")) desc_list.append(content.get("desc")) url_list.append(content.get("url")) df = pd.DataFrame({ '热搜标题': title_list, '热搜排名': order_list, '热搜指数': score_list, '描述': desc_list, '链接地址': url_list }) df.to_excel('百度热搜榜.xlsx', index=False) # 保存结果数据

最后,查看一下获取到的数据: 在这里插入图片描述 一共31条数据(1条置顶热搜+30条普通热搜)。

三、总结

以上就是整个获取的数据,如果你们有其他数据需要用python获取的,欢迎在评论区留言。最后给你们推荐一个前端实用工具:JS加密工具。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有