【python】爬取百度热搜排行榜Top50+可视化【附源码】【送数据分析书籍】

本文主要是介绍【python】爬取百度热搜排行榜Top50+可视化【附源码】【送数据分析书籍】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

英杰社区icon-default.png?t=N7T8https://bbs.csdn.net/topics/617804998

  一、导入必要的模块:

    这篇博客将介绍如何使用Python编写一个爬虫程序,从斗鱼直播网站上获取图片信息并保存到本地。我们将使用requests模块发送HTTP请求和接收响应,以及os模块处理文件和目录操作。

        如果出现模块报错

        进入控制台输入:建议使用国内镜像源

pip install requests -i https://mirrors.aliyun.com/pypi/simple

         我大致罗列了以下几种国内镜像源:

        

清华大学
https://pypi.tuna.tsinghua.edu.cn/simple阿里云
https://mirrors.aliyun.com/pypi/simple/豆瓣
https://pypi.douban.com/simple/ 百度云
https://mirror.baidu.com/pypi/simple/中科大
https://pypi.mirrors.ustc.edu.cn/simple/华为云
https://mirrors.huaweicloud.com/repository/pypi/simple/腾讯云
https://mirrors.cloud.tencent.com/pypi/simple/

    

二、发送GET请求获取响应数据:

        设置了请求头部信息,以模拟浏览器的请求,函数返回响应数据的JSON格式内容。

def get_html(url):header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'}response = requests.get(url=url, headers=header)# print(response.json())html = response.json()return html

        如何获取请求头:

        火狐浏览器:
  1. 打开目标网页并右键点击页面空白处。
  2. 选择“检查元素”选项,或按下快捷键Ctrl + Shift + C(Windows)
  3. 在开发者工具窗口中,切换到“网络”选项卡。
  4. 刷新页面以捕获所有的网络请求。
  5. 在请求列表中选择您感兴趣的请求。
  6. 在右侧的“请求标头”或“Request Headers”部分,即可找到请求头信息。

     将以下请求头信息复制出来即可

三、代码思路

  1. 导入所需的库:

import requests
from bs4 import BeautifulSoup
import openpyxl

requests 库用于发送HTTP请求获取网页内容。

BeautifulSoup 库用于解析HTML页面的内容。

openpyxl 库用于创建和操作Excel文件。

        2.发起HTTP请求获取百度热搜页面内容:

url = 'https://top.baidu.com/board?tab=realtime'
response = requests.get(url)
html = response.content

这里使用了 requests.get() 方法发送GET请求,并将响应的内容赋值给变量 html

        3.使用BeautifulSoup解析页面内容:

soup = BeautifulSoup(html, 'html.parser')

创建一个 BeautifulSoup 对象,并传入要解析的HTML内容和解析器类型。

        4.提取热搜数据:

hot_searches = []
for item in soup.find_all('div', {'class': 'c-single-text-ellipsis'}):hot_searches.append(item.text)

这段代码通过调用 soup.find_all() 方法找到所有 <div> 标签,并且指定 class 属性为 'c-single-text-ellipsis' 的元素。

然后,将每个元素的文本内容添加到 hot_searches 列表中。

        5.保存热搜数据到Excel:

workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.title = 'Baidu Hot Searches'

使用 openpyxl.Workbook() 创建一个新的工作簿对象。

调用 active 属性获取当前活动的工作表对象,并将其赋值给变量 sheet

使用 title 属性给工作表命名为 'Baidu Hot Searches'

        6.设置标题:

sheet.cell(row=1, column=1, value='百度热搜排行榜—博主:Yan-英杰')

使用 cell() 方法选择要操作的单元格,其中 rowcolumn 参数分别表示行和列的索引。

将标题字符串 '百度热搜排行榜—博主:Yan-英杰' 写入选定的单元格。

        7.写入热搜数据:

for i in range(len(hot_searches)):sheet.cell(row=i+2, column=1, value=hot_searches[i])

使用 range() 函数生成一个包含索引的范围,循环遍历 hot_searches 列表。

对于每个索引 i,使用 cell() 方法将对应的热搜词写入Excel文件中。

        8.保存Excel文件:

workbook.save('百度热搜.xlsx')

使用 save() 方法将工作簿保存到指定的文件名 '百度热搜.xlsx'

        9.输出提示信息:

print('热搜数据已保存到 百度热搜.xlsx')

在控制台输出保存成功的提示信息。

四、完整代码:

        如果对CSDN周边以及有偿返现任务感兴趣:https://bbs.csdn.net/topics/617804998

私信博主进入交流群,一起学习探讨:
可添加博主:Yan--yingjie
如果想免费获取图书,也可添加博主微信,每周免费送数十本import requests
from bs4 import BeautifulSoup
import openpyxl# 发起HTTP请求获取百度热搜页面内容
url = 'https://top.baidu.com/board?tab=realtime'
response = requests.get(url)
html = response.content# 使用BeautifulSoup解析页面内容
soup = BeautifulSoup(html, 'html.parser')# 提取热搜数据
hot_searches = []
for item in soup.find_all('div', {'class': 'c-single-text-ellipsis'}):hot_searches.append(item.text)# 保存热搜数据到Excel
workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.title = 'Baidu Hot Searches'# 设置标题
sheet.cell(row=1, column=1, value='百度热搜排行榜—博主:Yan-英杰')# 写入热搜数据
for i in range(len(hot_searches)):sheet.cell(row=i+2, column=1, value=hot_searches[i])workbook.save('百度热搜.xlsx')
print('热搜数据已保存到 百度热搜.xlsx')

效果图:

可视化完整代码:

    如果对CSDN周边以及有偿返现任务感兴趣:https://bbs.csdn.net/topics/617804998

私信博主进入交流群,一起学习探讨,如果对CSDN周边以及有偿返现任务感兴趣:
可添加博主:Yan--yingjie
如果想免费获取图书,也可添加博主微信,每周免费送数十本import requests
from bs4 import BeautifulSoup
import matplotlib.pyplot as plt# 发起HTTP请求获取百度热搜页面内容
url = 'https://top.baidu.com/board?tab=realtime'
response = requests.get(url)
html = response.content# 使用BeautifulSoup解析页面内容
soup = BeautifulSoup(html, 'html.parser')# 提取热搜数据
hot_searches = []
for item in soup.find_all('div', {'class': 'c-single-text-ellipsis'}):hot_searches.append(item.text)# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False# 绘制条形图
plt.figure(figsize=(15, 10))
x = range(len(hot_searches))
y = list(reversed(range(1, len(hot_searches)+1)))
plt.barh(x, y, tick_label=hot_searches, height=0.8)  # 调整条形图的高度# 添加标题和标签
plt.title('百度热搜排行榜')
plt.xlabel('排名')
plt.ylabel('关键词')# 调整坐标轴刻度
plt.xticks(range(1, len(hot_searches)+1))# 调整条形图之间的间隔
plt.subplots_adjust(hspace=0.8, wspace=0.5)# 显示图形
plt.tight_layout()
plt.show()

效果图:

【文末送书】 

参与活动
1️⃣参与方式:关注、点赞、收藏,评论(人生苦短,我用python)
2️⃣获奖方式:程序随机抽取 3位,每位小伙伴将获得一本书
3️⃣活动时间:截止到 2024-1- 3  22:00:00

内容简介

  《Pandas数据分析》详细阐述了与Pandas数据分析相关的基本解决方案,主要包括数据分析导论、使用PandasDataFrame、使用Pandas进行数据整理、聚合Pandas DataFrame、使用Pandas和Matplotlib可视化数据、使用Seabom和自定义技术绘图、金融分析、基于规则的异常检测、Python机器学习入门、做出更好的预测、机器学习异常检测等内容。此外,该书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
  《Pandas数据分析》适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。

购买链接:

        京东:https://item.jd.com/14065178.html

        当当:http://product.dangdang.com/29599087.html

注:活动结束后会在我的主页动态如期公布中奖者,包邮到家。
 

这篇关于【python】爬取百度热搜排行榜Top50+可视化【附源码】【送数据分析书籍】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/812189

相关文章

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、