利用Python,爬取微博上有关某个话题的博文,例如#凉拌黄瓜#,最后将每一条博文内容的结果单独保存为一个txt格式。
回答之前请确保能跑起来,不要给我gpt写的死代码。
利用Python,爬取微博上有关某个话题的博文,例如#凉拌黄瓜#,最后将每一条博文内容的结果单独保存为一个txt格式。
回答之前请确保能跑起来,不要给我gpt写的死代码。
来了
from selenium import webdriver
import time
import os
# 初始化 Chrome 浏览器
driver = webdriver.Chrome()
# 打开微博页面,此处以某个话题页为例
weibo_url = "https://s.weibo.com/weibo?q=%2305%E5%90%8E%E5%B7%B2%E7%BB%8F%E8%BF%9B%E5%8C%96%E5%88%B0%E8%BF%99%E7%A7%8D%E7%A8%8B%E5%BA%A6%E4%BA%86%E5%90%97%23"
driver.get(weibo_url)
# 等待页面加载完成
time.sleep(5)
# 解析页面内容
page_source = driver.page_source
# 使用 Beautiful Soup 解析页面内容
from bs4 import BeautifulSoup
soup = BeautifulSoup(page_source, "html.parser")
# 查找博文内容
posts = soup.find_all("p", class_="txt")
# 设置保存目录
save_dir = "/Users/xx/Downloads/weibo_results/"
# 创建保存目录
if not os.path.exists(save_dir):
os.makedirs(save_dir)
# 逐条保存博文内容为 txt 文件
for i, post in enumerate(posts):
post_text = post.get_text(strip=True)
file_path = os.path.join(save_dir, f"weibo_{i + 1}.txt")
with open(file_path, "w", encoding="utf-8") as file:
file.write(post_text)
print(f"保存第{i + 1}条微博至 {file_path}")
# 关闭浏览器
driver.quit()
print("爬取和保存完成!")