Python爬取微博实时热搜榜信息

大家好,本文给大家讲解如何用python获取微博热搜榜信息,包含爬取时间、序号、关键词、热度等信息,希望对大家有所帮助。

1. 网页分析

目标网址(微博热搜榜):

https://s.weibo.com/top/summary

Python爬取微博实时热搜榜信息_第1张图片

实时热搜榜一共有50条,每个时刻可能都不一样(实时榜单)。

接下来,按 F12 或者右键选择审查元素,以第一个小杨哥发工资回应为例搜索一下:

Python爬取微博实时热搜榜信息_第2张图片

这里我们可以看到相应的热度数据以及具体链接。

继续搜索其他元素:

Python爬取微博实时热搜榜信息_第3张图片

发现实际上这个热搜榜的信息在网页中是以表格(Table)的形式展现的。

2. 爬取数据

2.1 导入模块

import time
import requests
import pandas as pd

2.2 请求网页数据

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
}
url = 'https://s.weibo.com/top/summary'
df = getweibodata(url,headers)

2.3 解析数据

time_mow = time.strftime("%Y-%m-%d %H:%M", time.localtime())
df['时间'] = [time_mow] * df.shape[0]
df['排名'] = df['序号'].apply(int)
df['标题'] = df['关键词'].str.split(' ', expand=True)[0]
df['热度'] = df['关键词'].str.split(' ', expand=True)[1]

2.4 保存结果

df = pd.DataFrame(all_data,columns=cols)
df.to_excel('微博热搜榜.xlsx',index=None)

Python爬取微博实时热搜榜信息_第4张图片

你可能感兴趣的:(python,开发语言)