【经典爬虫案例】用Python爬取微博热搜榜!

这篇具有很好参考价值的文章主要介绍了【经典爬虫案例】用Python爬取微博热搜榜!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 一、爬取目标
  • 二、编写爬虫代码
    • 2.1 前戏
    • 2.2 获取cookie
    • 2.3 请求页面
    • 2.4 解析页面
    • 2.5 转换热搜类别
    • 2.6 保存结果
    • 2.7 查看结果数据
  • 三、获取完整源码

一、爬取目标

您好,我是@马哥python说,一名10年程序猿。

本次爬取的目标是: 微博热搜榜
【经典爬虫案例】用Python爬取微博热搜榜!

分别爬取每条热搜的:

热搜标题、热搜排名、热搜类别、热度、链接地址。

下面,对页面进行分析。

经过分析,此页面没有XHR链接通过,也就是说,没有采用AJAX异步技术。

所以,只能针对原页面进行爬取。

二、编写爬虫代码

2.1 前戏

首先,导入需要用到的库:

import pandas as pd  # 存入excel数据
import requests  # 向页面发送请求
from bs4 import BeautifulSoup as BS  # 解析页面

定义一个爬取目标地址:

# 目标地址
url = 'https://s.weibo.com/top/summary?cate=realtimehot'

定义一个请求头:

# 请求头
header = {
	'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Mobile Safari/537.36',
	'Host': 's.weibo.com',
	'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
	'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
	'Accept-Encoding': 'gzip, deflate, br',
	# 定期更换Cookie
	'Cookie': '换成自己的Cookie值'
}

其中,Cookie需要换成自己的Cookie值。

2.2 获取cookie

怎么查看自己的Cookie?

Chrome浏览器,按F12打开开发者模式,按照以下步骤操作:
【经典爬虫案例】用Python爬取微博热搜榜!

  1. 选择网络:Network
  2. 选择所有网络:All
  3. 选择目标链接地址
  4. 选择头:Headers
  5. 选择请求头:Request Headers
  6. 查看cookie值

2.3 请求页面

下面,向页面发送请求:

r = requests.get(url, headers=header)  # 发送请求

2.4 解析页面

接下来,解析返回的页面:

soup = BS(r.text, 'html.parser')
​```
![](https://img2023.cnblogs.com/blog/2864563/202307/2864563-20230711213330436-846402627.png)

根据页面分析,每条热搜都放在了标签为section的、class值为list的数据里,里面每条热搜,又是一个a标签。

所以,根据这个逻辑,解析页面,以获取链接地址为例:
```python
items = soup.find('section', {'class': 'list'})
for li in items.find_all('li'):
	# 链接地址
	href = li.find('a').get('href')
	href_list.append('https://s.weibo.com' + href)

页面其他元素,热搜标题、排名、热度、类别等获取代码,不再一一赘述。

2.5 转换热搜类别

其中,热搜类别这个元素需要注意,在页面上是一个个图标,背后对应的是class值,是个英文字符串,需要转换成对应的中文含义,定义以下函数进行转换:

def trans_icon(v_str):
	"""转换热搜类别"""
	if v_str == 'icon_new':
		return '新'
	elif v_str == 'icon_hot':
		return '热'
	elif v_str == 'icon_boil':
		return '沸'
	elif v_str == 'icon_recommend':
		return '商'
	else:
		return '未知'

目前的转换函数包括了"新"、"热"、"沸"、"商"等类别。

我记得,微博热搜类别,是有个"爆"的,就是热度最高的那种,突然蹿升的最热的热点,爆炸性的。但是现在没有爆炸性新闻,所以我看不到"爆"背后的class值是什么。

后续如果有爆炸性热点,可以按照代码的逻辑,加到这个转换函数里来。

2.6 保存结果

依然采用我最顺手的to_excel方式,存入爬取的数据:

df = pd.DataFrame(  # 拼装爬取到的数据为DataFrame
		{
			'热搜标题': text_list,
			'热搜排名': order_list,
			'热搜类别': type_list,
			'热度': view_count_list,
			'链接地址': href_list
		}
	)
df.to_excel('微博热搜榜.xlsx', index=False)  # 保存结果数据

至此,整个爬取过程完毕。

2.7 查看结果数据

查看一下,保存到excel里的数据:
【经典爬虫案例】用Python爬取微博热搜榜!

其中,第一条是置顶热搜,所以一共是 (1+50=51) 条数据。

演示视频:https://www.zhihu.com/zvideo/1488901467788070912

三、获取完整源码

get完整代码:【最新爬虫案例】用Python爬取微博热搜榜!


我是@马哥python说,持续分享python源码干货中!文章来源地址https://www.toymoban.com/news/detail-548165.html

到了这里,关于【经典爬虫案例】用Python爬取微博热搜榜!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫 | 爬取微博和哔哩哔哩数据

    目录 一、bill_comment.py 二、bili_comment_pic.py 三、bilibili.py 四、bilihot_pic.py 五、bilisearch_pic.py 六、draw_cloud.py 七、weibo.py 八、weibo_comment.py 九、weibo_comment_pic.py 十、weibo_pic.py 十一、weibo_top.py 十二、weibo_top_pic.py 十三、weibo_top_pie.py 十四、pachong.py 十五、代码文件说明 pachong: b站、

    2024年02月12日
    浏览(14)
  • 【爬虫实战】用python爬取微博任意关键词搜索结果、exe文件

    项目功能简介: 1.交互式配置; 2.两种任意来源(直接输入、本地文件); 3.自动翻页(无限爬取); 4.指定最大翻页页码; 5.数据保存到csv文件; 6.程序支持打包成exe文件; 7.项目操作说明文档; 一.最终效果 视频演示: 用python爬取微博搜索结果、exe文件

    2024年02月02日
    浏览(28)
  • 用python语言爬虫爬取微博评论--上--初步爬虫(超详细版,大学生不骗大学生)

    目录 一、找到页面  二、学会使用检查元素 2.1 打开检查元素界面 2.2 找到所有评论所在的位置 2.2.1 搜索评论 2.2.2  找到data表 三、基础部分代码实现 ​​​​​​​ 全部已经更完(下面两个链接是中和下) https://blog.csdn.net/m0_68325382/article/details/137234661?spm=1001.2014.3001.5502 爬

    2024年04月10日
    浏览(20)
  • 【爬虫案例】用Python爬取百度热搜榜数据!

    目录 一、爬取目标 二、编写爬虫代码 三、同步视频讲解 四、完整源码 您好,我是@马哥python说,一名10年程序猿。 本次爬取的目标是:百度热搜榜 分别爬取每条热搜的: 热搜标题、热搜排名、热搜指数、描述、链接地址。 下面,对页面进行分析。 经过分析,此页面有XH

    2024年02月13日
    浏览(12)
  • Python|30行代码实现微博热榜爬虫(及可视化进阶)

    当你想要跟踪微博的热门话题时,通过编写一个Python爬虫,来获取微博热搜榜单上的实时数据,并将其可视化展示出来,通过邮件或QQ机器人将其推送,亦可以将其存档,用以保留不同时期的舆论热点。 此外,排行榜项目一向是学习Python爬虫时必备的练手项目,通过本项目,

    2024年02月05日
    浏览(14)
  • python爬虫实战(3)--爬取某乎热搜

    1. 分析爬取地址 打开某乎首页,点击热榜 这个就是我们需要爬取的地址,取到地址 某乎/api/v3/feed/topstory/hot-lists/total?limit=50desktop=true 定义好请求头,从Accept往下的请求头全部复制,转换成json 2. 分析请求结果 通过请求可以看出, hot-lists/total?limit=50desktop=true 请求后的返回参数

    2024年02月11日
    浏览(17)
  • python学习:爬虫爬取微信公众号数据

    参考: https://blog.csdn.net/qq_45722494/article/details/120191233 1、登录微信公众平台 这里我注册了个微信公众号 点击图文消息 点击超链接 搜索要爬取的公众号名称 获取appmsg?action… 上述第一步可以获取到cookie、fakeid、token、user_agent等,编辑成wechat.yaml文件,如下所示 代码如下: 因为阅读

    2024年01月24日
    浏览(15)
  • python爬虫爬取微信公众号的阅读数、喜爱数、文章标题和链接等信息

    爬虫的步骤: (1)申请自己的公众号 (2)使用fiddler抓包工具 (3)pycharm (一)申请公众号 官网:微信公众平台 填入相关信息创建微信公众号 进入公众号界面如下: 找到新的创作-图文信息 在弹出的界面中查找公众号文章-输入公众号名称-确定 点击确认之后,进入公众号

    2024年02月05日
    浏览(18)
  • 【可视化大屏】用Python开发「淄博烧烤」微博热评舆情分析大屏

    目录 一、开发背景 二、爬虫代码 2.1 爬微博列表 2.2 爬微博评论 2.3 导入MySQL数据库 三、可视化代码 3.1 大标题 3.2 词云图(含:加载停用词) 3.3 玫瑰图(含:snownlp情感分析) 3.4 柱形图-TOP10 3.5 折线图-讨论热度趋势 3.6 地图-IP分布 3.7 Page组合大屏 四、彩蛋-多种颜色主

    2024年02月08日
    浏览(22)
  • 【爬虫项目-4】微博超话内容爬取/selenium使用教学

    闲来无事想了解王者荣耀某个英雄最近的风评,例如是版本之子吗or出装怎么搭配or大家对策划这次改动有何看法,发现微博超话这方面的内容非常多,于是想把超话内容爬取下来做进一步数据分析。温馨提示 本代码可以适用于任何微博超话内容的爬取,只需修改url即可。 可

    2024年04月17日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包