前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >weibo_search_pc_tool之v1.3版 | 爬取微博搜索关键词下的帖子软件,支持多关键词、按时间段采集

weibo_search_pc_tool之v1.3版 | 爬取微博搜索关键词下的帖子软件,支持多关键词、按时间段采集

原创
作者头像
无双0516
发布2025-03-21 11:50:14
发布2025-03-21 11:50:14
7300
代码可运行
举报
运行总次数:0
代码可运行

本软件工具仅限学术交流使用,严格遵循相关法律法规,符合平台合法性,禁止用于任何商业用途!

一、开发背景

微博是中国非常受欢迎的社交媒体平台,主要以文字和图片为核心内容,特别在实时性和KOL(意见领袖)关注度方面表现突出。许多网友在微博上积极分享自己的观点和看法,形成了一个极为活跃的社区。此外,我也注意到,每当热点事件发生时,微博的热搜通常是各大媒体平台中最先报道的,而其他平台则往往会有一定延迟。

因此,我用python开发了个爬虫采集软件,名为【爬微博搜索软件】。

二、演示截图

软件运行中截图:
软件运行界面
软件运行界面

三、演示视频

软件使用过程演示:

https://www.bilibili.com/video/BV1pN61YBEwE

四、重要!技术栈

软件全部模块采用python语言开发,主要分工如下:

代码语言:python
代码运行次数:0
运行
复制
tkinter:GUI软件界面
requests:爬虫请求
BeautifulSoup:解析响应数据
pandas:保存csv结果、数据清洗
logging:日志记录

软件界面核心源码实现:

代码语言:python
代码运行次数:0
运行
复制
# 创建主窗口
root = tk.Tk()
root.title('微博搜索采集软件v1.3')
# 设置窗口大小
root.minsize(width=900, height=650)

日志记录核心源码实现:

代码语言:python
代码运行次数:0
运行
复制
def get_logger(self):
	self.logger = logging.getLogger(__name__)
	# 日志格式
	formatter = '[%(asctime)s-%(filename)s][%(funcName)s-%(lineno)d]--%(message)s'
	# 日志级别
	self.logger.setLevel(logging.DEBUG)
	# 控制台日志
	sh = logging.StreamHandler()
	log_formatter = logging.Formatter(formatter, datefmt='%Y-%m-%d %H:%M:%S')
	# info日志文件名
	info_file_name = time.strftime("%Y-%m-%d") + '.log'
	# 将其保存到特定目录,ap方法就是寻找项目根目录,该方法博主前期已经写好。
	case_dir = r'./logs/'
	info_handler = TimedRotatingFileHandler(filename=case_dir + info_file_name,
											when='MIDNIGHT',
											interval=1,
											backupCount=7,
											encoding='utf-8')
	self.logger.addHandler(sh)
	sh.setFormatter(log_formatter)
	self.logger.addHandler(info_handler)
	info_handler.setFormatter(log_formatter)
	return self.logger

爬虫部分核心源码实现:

发送请求模块:

代码语言:python
代码运行次数:0
运行
复制
# 发送请求
r = requests.get(url, headers=h1, params=params)
# 解析数据
soup = BS(r.text, 'html.parser')

保存数据模块:

代码语言:python
代码运行次数:0
运行
复制
# 保存数据
df = pd.DataFrame(
	{
		'关键词': kw,
		'页码': page,
		'微博id': id_list,
		'微博链接': wb_url_list,
		'用户昵称': name_list,
		'用户主页链接': user_link_list,
		'发布时间': create_time_list,
		'转发数': repost_count_list,
		'评论数': comment_count_list,
		'点赞数': like_count_list,
		'微博内容': text_list,
	}
)
# 数据保存到csv文件
df.to_csv(self.result_file, mode='a+', index=False, header=header, encoding='utf_8_sig')

出于版权考虑,暂不公开完整源码,仅向用户提供软件使用。

_____

首发众公号”老男孩的平凡之路“,欢迎技术交流、深度探讨!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、开发背景
  • 二、演示截图
  • 三、演示视频
  • 四、重要!技术栈
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档