当前位置: 首页 > news >正文

Python实现微博关键词爬虫

1.背景介绍

随着社交媒体的广泛应用,微博上的海量数据成为了很多研究和分析的重要信息源。为了方便获取微博的相关内容,本文将介绍如何使用Python编写一个简单的爬虫脚本,从微博中抓取指定关键词的相关数据,并将这些数据保存为Excel文件。本文将以关键词“樊振东”为例,展示从微博抓取该关键词相关数据的全过程。

废话不多说,先上结果图。

2. 项目实现思路

该爬虫通过向微博的搜索接口发送HTTP请求,获取与指定关键词相关的微博数据,并使用BeautifulSoup进行网页解析,将解析后的数据存储到Pandas DataFrame中,最后保存为Excel文件。整个项目分为以下几个步骤:

  • 设置请求头信息和cookie,模拟浏览器访问;
  • 根据指定日期范围抓取每天的微博内容;
  • 解析网页,提取发布者、内容、转发数、评论数、点赞数等信息;
  • 将数据存储为Excel文件(可根据自己的需求更换保存格式)

3.代码

1.导入相关的包,设置headers参数(cookies参数需要更改成自己浏览器的cookies);
import datetime
from time import sleep
import pandas as pd
import requests
from bs4 import BeautifulSoup
import copyheaders# 模拟请求头,设置cookie等信息
headers = copyheaders.headers_raw_to_dict(b"""
Cookie:SCF=AryfLlAySr5dtuzHiOK7FmpLA_PYzO6fAyNLqHX07u0nVChBj3WtMAFGmado-IlJWOnJkTquNJuxX8pMuh_x4Wk.;
SUB=_2A25LrZcaDeRhGeBH4lIV-SrLzzqIHXVowpbSrDV8PUNbmtB-LUTWkW9NQbWyO1B36EDQGBy28OXoMRu67OFLhiMO;
SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WWQ9A123FRnzhjZaYxL0RDv5NHD95Qc1K.7Sh.XS0BcWs4Dqcjci--fi-2Xi-24i--RiK.0iKL2i--RiKn4i-zEi--NiKLWiKnXi--4iK.fiKLhi--fi-82iK.7;
ALF=02_1725002826;
WBPSESS=kp-mRCDleWeLlB7ocAtWjgJpLwY-7s0o28OfmKxGr-vVEN9zU_M04E2V7vR8bHNGUkdOr1fGGH2XEMAup-6R2PDUjOcXLxlhRMq6F6VcYF67rgcxegC8hR0n0X1josnpQ9N0k5rdHLY5-sDsM0MxWw==;
XSRF-TOKEN=CWIcgDBSCGTzTuU1RDrnF-lT
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0
""")
2.设置关键词以及爬取时间范围,并将日期转换为标准格式;
# 设置关键词、起始日期和截止日期
keywords = "樊振东"
initial_time = '2024-07-26'
deadline = '2024-08-06'data = []  # 用于存储爬取到的数据
date_list = []
frequency = 0# 生成日期列表
new_time = datetime.datetime.strptime(initial_time, "%Y-%m-%d")
date = initial_time
while date <= deadline:date_list.append(date)new_time = new_time + datetime.timedelta(1)date = new_time.strftime("%Y-%m-%d")
3.解析数据并保存;
    for page in range(1, int(pages) + 1):sleep(1)  # 防止被封禁,设置爬取间隔new_url = f'https://s.weibo.com/weibo?q={keywords}&typeall=1&suball=1&timescope=custom%3A{time}-0%3A{time}-23&Refer=g&page={page}'new_th = requests.get(url=new_url, headers=headers).textknapsack = BeautifulSoup(new_th, 'lxml')data_list = knapsack.find_all('div', class_="card")no = knapsack.find('div', class_="card card-no-result s-pt20b40")# 解析每一条微博信息if no is None:for i in data_list:dic = {}try:dic['发布者id'] = i.find('div', class_="info").find('a', target="_blank").textitme = str(i.find('div', class_="from").text).replace('
', '').replace(' ', '').replace('来自', '').split('?')dic['发布时间'] = itme[0]dic['出处'] = itme[1]dic['转发数'] = str(i.find_all('a', class_="woo-box-flex woo-box-alignCenter woo-box-justifyCenter")[-3].text).replace(' ', '')dic['点赞数'] = str(i.find_all('span', class_="woo-like-count")[-1].text).replace(' ', '')dic['评论数'] = str(i.find_all('a', class_="woo-box-flex woo-box-alignCenter woo-box-justifyCenter")[-2].text).replace(' ', '')txt = str(i.find('p', class_="txt").text).replace('
', '').replace(' ', '').replace('?', '').replace('收起', '')dic["内容"] = txtfrequency += 1data.append(dic)except Exception as e:break# 数据保存到Excel
df = pd.DataFrame(data)
df.to_excel(f'{keywords}.xlsx', index=False)

4.代码说明

大家给以根据自己的需求更改代码;

有问题联系zx_luckfe;

相关文章:

Python实现微博关键词爬虫

1.背景介绍 随着社交媒体的广泛应用&#xff0c;微博上的海量数据成为了很多研究和分析的重要信息源。为了方便获取微博的相关内容&#xff0c;本文将介绍如何使用Python编写一个简单的爬虫脚本&#xff0c;从微博中抓取指定关键词的相关数据&#xff0c;并将这些数据保存为Ex…...

linux概念详解

用户守护进程 用户空间守护进程是一些在后台运行的长期服务程序&#xff0c;提供系统级服务。 下面举一些例子。 网络服务&#xff1a; 如sshd&#xff08;SSH服务&#xff09;、httpd&#xff08;HTTP服务&#xff09;。 sshd&#xff1a;sshd 守护进程会在后台运行&#x…...

【设计模式】-工厂模式(简单工厂、工厂方法、抽象工厂)

工厂模式(简单工厂、工厂方法、抽象工厂) 介绍 简单工厂模式 简单工厂模式不属于23种GoF设计模式之一&#xff0c;但它是一种常见的设计模式。它提供了一种创建对象的接口&#xff0c;但由子类决定要实例化的类是哪一个。这样&#xff0c;工厂方法模式让类的实例化推迟到子类…...

AMESim中批处理功能的应用

AMESim 软件的批处理功能是一项能显著提高仿真效率和灵活性的功能&#xff0c;以下是其介绍与应用说明&#xff1a; 一 功能介绍 参数扫描功能&#xff1a;用户可以指定模型中一个或多个参数的取值范围和步长&#xff0c;批处理功能会自动遍历这些参数组合&#xff0c;进行多…...

《Spring实战》(第6版)第1章 Spring起步

第1部分 Spring基础 第1章 Spring起步 1.1 什么是Spring Spring的核心是提供一个容器(container)。 称为Spring应用上下文(Spring application context)。 创建和管理应用的组件(bean)&#xff0c;与上下文装配在一起。 Bean装配通过依赖注入(Dependency Injection,DI)。…...

E卷-特殊的加密算法-(200分)

专栏订阅🔗 特殊的加密算法 问题描述 有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。规则如下: 明文为一段由 0-9 组成的数字串。密码本为由数字 0-9 组成的二维数组。需要按明文串的数字顺序在密码本里找到同样的数字串,密码本里…...

QT 异步编程之多线程

一、概述 1、在进行桌面应用程序开发的时候&#xff0c;假设应用程序在某些情况下需要处理比较复制的逻辑&#xff0c;如果只有一个线程去处理&#xff0c;就会导致窗口卡顿&#xff0c;无法处理用户的相关操作。这种情况下就需要使用多线程&#xff0c;其中一个线程处理窗口事…...

K-均值(K-means)

K-均值&#xff08;K-means&#xff09;是一种常用的无监督学习算法&#xff0c;用于将数据集中的样本分成 K 个簇。该算法的过程大致如下&#xff1a; 1. 随机初始化 K 个聚类中心&#xff08;centroid&#xff09;。 2. 将每个样本分配到与其最近的聚类中心所代表的簇。 3. …...

AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐

AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐 目录 AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐比特币AI Agents稳定币扩容区块链AI基础设施AI驱动的软件应用AI赋能的行业应用AI医疗影像、智能客服、个性化推荐AI药物研发比特币 市场与机构化:2024…...

接入 SSL 认证配置:满足等保最佳实践

前言 随着信息安全形势的日益严峻&#xff0c;等保&#xff08;信息安全等级保护&#xff09;要求成为各行业信息系统必须遵守的标准。在数据库领域&#xff0c;OpenGauss作为一款高性能、安全、可靠的开源关系型数据库&#xff0c;也需要满足等保要求&#xff0c;确保数据的安…...

微软AutoGen高级功能——Selector Group Chat

介绍 大家好&#xff0c;这次给大家分享的内容是微软AutoGen框架的高级功能Selector Group Chat(选择器群聊)&#xff0c;"选择器群聊"我在给大家分享的这篇博文的代码中有所体现微软AutoGen介绍——Custom Agents创建自己的Agents-CSDN博客&#xff0c;但是并没有详…...

w206基于Spring Boot的农商对接系统的设计与实现

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…...

Springboot中使用Elasticsearch(部署+使用+讲解 最完整)

目录 引言 一、docker中安装Elasticsearch 1、创建es专有的网络 2、开放端口 3、在es-net网络上安装es和kibana 4、可能出现的问题 5、测试 6、安装IK分词器 7、测试IK分词器 二、结合业务实战 1、准备依赖 2、配置yml 3、读取yml配置 4、准备es配置类 5、编写测…...

深度求索—DeepSeek API的简单调用(Java)

DeepSeek简介 DeepSeek&#xff08;深度求索&#xff09;是由中国人工智能公司深度求索&#xff08;DeepSeek Inc.&#xff09;研发的大规模语言模型&#xff08;LLM&#xff09;&#xff0c;专注于提供高效、智能的自然语言处理能力&#xff0c;支持多种场景下的文本生成、对…...

flv实时监控视频

文章目录 前言一、安装二、引入三、使用 前言 开发大屏项目时&#xff0c;可能需要在大屏上展示一个监控画面&#xff0c;此时就可以用的flv.js来展示视频效果 一、安装 npm install flv.js二、引入 import flvjs from flv.js;三、使用 <video ref"videoElement&quo…...

有哪些免费的SEO软件优化工具

随着2025年互联网的不断发展&#xff0c;越来越多的企业意识到在数字营销中&#xff0c;网站的曝光度和排名至关重要。无论是想要提高品牌知名度&#xff0c;还是想要通过在线销售增加收益&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;都是一项不可忽视的关键策略。而要…...

跟着ai辅助学习vue3

第一章&#xff1a;基础入门&#xff08;1 - 2 周&#xff09; 1. 了解 Vue 3 概述 阅读官方文档简介 访问 Vue 3 官方文档&#xff0c;在首页或简介板块中&#xff0c;重点了解 Vue 3 相较于 Vue 2 的重大变革。比如&#xff0c;Vue 3 采用了 Proxy 实现响应式系统&#xff…...

什么是Mustache

Mustache 是一种轻量级模板引擎&#xff0c;用于将变量插入到模板中生成最终的文本输出。它的设计简单且易于使用&#xff0c;适用于多种编程语言&#xff0c;包括 JavaScript、Python、Ruby、Java 等。 Mustache 的模板语法使用双大括号 {{}} 包裹变量或表达式&#xff0c;用…...

C++,STL容器适配器,priority_queue:优先队列深入解析

文章目录 一、容器概览与核心特性核心特性速览二、底层实现原理1. 二叉堆结构2. 容器适配器架构三、核心操作详解1. 容器初始化2. 元素操作接口3. 自定义优先队列四、实战应用场景1. 任务调度系统2. 合并K个有序链表五、性能优化策略1. 底层容器选择2. 批量建堆优化六、注意事项…...

1.综述 Google 的软件工程读书笔记

Google 的软件工程由Google的多位资深工程师合著&#xff0c;分享了他们在管理Google庞大代码库&#xff08;超过20亿行代码&#xff09;过程中总结的经验教训。这本书不仅涵盖了软件工程的理论知识&#xff0c;还结合了Google的实际案例&#xff0c;展示了如何在大规模、复杂的…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程

鸿蒙电脑版操作系统来了&#xff0c;很多小伙伴想体验鸿蒙电脑版操作系统&#xff0c;可惜&#xff0c;鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机&#xff0c;来体验大家心心念念的鸿蒙系统啦&#xff01;注意&#xff1a;虚拟…...

算法—栈系列

一&#xff1a;删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...

【优选算法】模拟 问题算法

​一&#xff1a;替换所有的问号 class Solution { public:string modifyString(string s) {int n s.size();for(int i 0; i < n; i){if(s[i] ?){for(char ch a; ch < z; ch){if((i0 && ch !s[i1]) || (in-1 && ch ! s[i-1]) || ( i>0 &&…...