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

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

1. 网页分析

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

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

图片

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

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

图片

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

继续搜索其他元素:

图片

发现实际上这个热搜榜的信息在网页中是以表格(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爬取微博搜榜通常涉及到网络抓取(Web Scraping)技术,利用Python的requests库发送HTTP请求获取网页内容,然后使用BeautifulSoup、Scrapy或其他解析库如lxml来解析HTML结构,提取出所需的信息,如关键词。 以下是一个简单的步骤概述: 1. **导入必要的库**:首先需要安装`requests`, `beautifulsoup4` 或者 `scrapy` 等库。 ```python import requests from bs4 import BeautifulSoup ``` 2. **发送GET请求**:使用requests.get()函数访问微博搜榜的URL。请注意,微博可能会有反爬虫机制,所以可能需要处理验证码或登录验证。 ```python url = 'https://weibo.com/trending' response = requests.get(url) ``` 3. **解析HTML**:使用BeautifulSoup解析返回的HTML文档,定位包含搜榜信息的部分。 ```python soup = BeautifulSoup(response.text, 'html.parser') hot_searches = soup.find_all('div', class_='search-trend') # 根据实际HTML结构找元素 ``` 4. **数据提取**:从解析后的DOM树中抽取关键词及其相关信息。 5. **存储数据**:将抓取到的数据保存到文件或数据库中,可以使用pandas库方便地操作数据。 ```python for search in hot_searches: keyword = search.text.strip() # 如果需要,还可以获取度、时间等其他属性 print(keyword) ``` 6. **异常处理**:考虑到网络不稳定等因素,加入适当的错误处理代码。 注意:微博可能对爬虫有严格的限制,频繁的请求可能会导致IP被封禁。在实际应用中,请遵守网站的使用条款,并尊重网站的服务协议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python慕遥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值