【最新爬虫案例】用Python爬取微博热搜榜!

您所在的位置:网站首页 过去的微博热搜怎么查看 【最新爬虫案例】用Python爬取微博热搜榜!

【最新爬虫案例】用Python爬取微博热搜榜!

2024-07-16 04:55| 来源: 网络整理| 查看: 265

一、爬取目标

本次爬取的目标是,微博热搜榜的数据:

https://s.weibo.com/top/summary?cate=realtimehot

微博热搜榜页面

分别爬取每条热搜的:

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

下面,对页面进行分析。

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

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

二、编写爬虫代码2.1 前戏

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

定义一个爬取目标地址:

定义一个请求头:

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

2.2 获取cookie

怎么查看自己的Cookie?

Chrome浏览器,按F12打开开发者模式,按照以下步骤操作:

开发者模式页面

选择网络:Network

选择所有网络:All

选择目标链接地址

选择头:Headers

选择请求头:Request Headers

查看cookie值

2.3 请求页面

下面,向页面发送请求:

2.4 解析页面

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

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

所以,根据这个逻辑,解析页面,以获取链接地址为例:

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

2.5 转换热搜类别

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

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

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

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

2.6 保存结果

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

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

2.7 查看结果数据

查看一下,保存到excel里的数据:

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

视频演示:

三、获取完整源码

爱学习的小伙伴,本案例的python爬虫源码及结果数据,我已打包好,并上传至微信公众号"老男孩的平凡之路",后台回复"爬热搜"获取。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3