请用python代码爬取微博的热搜爬取到的内容包含时间和ip并把爬取到的数据保存为csv文件存放在桌面
时间: 2024-05-17 16:19:49 浏览: 96
python爬取微博热搜榜
好的,以下是一个简单的 Python 爬取微博热搜并获取时间和 IP 并保存为 csv 文件并存放在桌面的示例代码:
```
import requests
from bs4 import BeautifulSoup
import csv
import os
# 构造请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
# 发送请求,获取网页源代码
url = 'https://s.weibo.com/top/summary?cate=realtimehot'
response = requests.get(url, headers=headers)
html = response.text
# 解析 HTML
soup = BeautifulSoup(html, 'html.parser')
hot_list = soup.find_all('tr', class_='')
# 获取桌面路径并拼接 csv 文件路径
desktop_path = os.path.join(os.path.expanduser("~"), 'Desktop')
csv_path = os.path.join(desktop_path, 'weibo_hot.csv')
# 打开 csv 文件并写入表头
with open(csv_path, 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerow(['排名', '标题', '时间', 'IP'])
# 写入热搜榜单及其时间和 IP
for i, hot in enumerate(hot_list):
# 热搜排名
rank = i + 1
# 热搜标题
title = hot.find('a', class_='list-title').text
# 热搜时间
time = hot.find('td', class_='td-04').text
# 热搜 IP
ip = hot.find('td', class_='td-05').text
# 将热搜数据写入 csv 文件中
writer.writerow([rank, title, time, ip])
```
这段代码会将爬取到的热搜数据保存为名为 `weibo_hot.csv` 的 csv 文件,并存放在桌面上。需要注意的是,这段代码仅供学习交流,任何未经授权的爬取行为都是不被允许的。
阅读全文