【GUI软件开发】小红书评论采集:自动采集1w多条,含二级评论!

news2024/9/28 7:47:16

文章目录

  • 一、爬取目标
    • 1.1 效果截图
    • 1.2 演示视频
    • 1.3 软件说明
  • 二、代码讲解
    • 2.1 爬虫采集模块
    • 2.2 软件界面模块
    • 2.3 日志模块
  • 三、附完整源码及软件

一、爬取目标

您好!我是@马哥python说 ,一名10年程序猿。

我用python开发了一个爬虫采集软件,可自动抓取小红书评论数据,并且含二级评论数据。

为什么有了源码还开发界面软件呢?方便不懂编程代码的小白用户使用,无需安装python,无需改代码,双击打开即用!

1.1 效果截图

软件界面截图:

结果截图1:

结果截图2:

结果截图3:

1.2 演示视频

软件运行演示:

【视频演示】小红书评论采集工具,可爬取上万条,含二级评论!

1.3 软件说明

几点重要说明:

  1. Windows用户可直接双击打开使用,无需Python运行环境,非常方便
  2. 需要填入cookie和爬取目标笔记链接
  3. 支持同时爬多个笔记的评论
  4. 可爬取10个关键字段,含:笔记链接,页码,评论者昵称,评论者id,评论者主页链接,评论时间,评论IP属地,评论点赞数,评论级别,评论内容。
  5. 评论中包含二级评论及二级展开评论。

二、代码讲解

2.1 爬虫采集模块

通过把已有代码部分封装成class类,供tkinter界面调用。

详细爬虫实现逻辑,请见:

【爬虫实战】用Python采集任意小红书笔记下的评论,爬了10000多条,含二级评论!

2.2 软件界面模块

软件界面采用tkinter开发。
主窗口部分:

# 创建日志目录
work_path = os.getcwd()
if not os.path.exists(work_path + "/logs"):
	os.makedirs(work_path + "/logs")
# 创建主窗口
root = tk.Tk()
root.title('小红书评论采集软件 | 马哥python说')
# 设置窗口大小
root.minsize(width=850, height=650)

填写cookie控件:

# 【填入Cookie】
tk.Label(root, justify='left', font=('微软', 14), text='个人Cookie:').place(x=30, y=75)
entry_ck = tk.Text(root, bg='#ffffff', width=110, height=2, )
entry_ck.place(x=30, y=100, anchor='nw')  # 摆放位置

填写笔记链接控件:

# 【笔记链接】
tk.Label(root, justify='left', font=('微软', 14), text='笔记链接:').place(x=30, y=145)
note_ids = tk.StringVar()
note_ids.set('')
entry_nt = tk.Text(root, bg='#ffffff', width=110, height=14, )
entry_nt.place(x=30, y=170, anchor='nw')  # 摆放位置

底部软件版权说明:

# 版权信息
copyright = tk.Label(root, text='@马哥python说 All rights reserved.', font=('仿宋', 10), fg='grey')
copyright.place(x=290, y=625)

以上。

2.3 日志模块

好的日志功能,方便软件运行出问题后快速定位原因,修复bug。
核心代码:

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'
	case_dir = r'./logs/'
	info_handler = TimedRotatingFileHandler(filename=case_dir + info_file_name,
											when='MIDNIGHT',
											interval=1,
											backupCount=7,
											encoding='utf-8')

日志文件截图:

三、附完整源码及软件

附完整源码及软件:【GUI软件开发】小红书评论采集:自动采集1w多条,含二级评论!


我是@马哥python说 ,一名10年程序猿,持续分享python干货中!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1194461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8年经验之谈 —— 性能压测工具选型对比!

本文致力于给出性能压测的概念与背景介绍,同时针对市场上的一些性能压测工具,给出相应的对比,从而帮助大家更好地针对自身需求实现性能压测。 为什么要做性能压测 在介绍性能压测概念与背景之前,首先解释下为什么要做性能压测。…

基于人群行为分析技术的AI智能公园管理系统

一、系统概括 智能公园视频监控管理系统旨在利用人群行为分析技术,结合先进的物联网、人工智能和大数据分析等技术手段,实现对公园内人流量、行为活动和安全问题的实时监测与管理。旭帆科技智能公园视频监控管理系统将通过智能视频监控、感知设备和数据…

thinkphp6 起步

1、安装 composer create-project topthink/think6.0 tp62、使用多应用模式,你需要安装多应用模式扩展think-multi-app composer require topthink/think-multi-app3、config/app.php中,将 ‘auto_multi_app’ > flase, 改为true; 需要自…

远程运维的定义以及优点详细讲解-行云管家

对于IT运维小伙伴而言,远程运维是最平常不过的一件事情了。比如下班了需要工作,可以远程运维就好了;比如帮助用户远程安装远程运维软件等等。今天我们就一起来简单聊聊远程运维的定义以及优点,顺便看看市面上哪款远程运维软件好用…

AUTOSAR CAN Busoff处理

Busoff产生机制 CAN通信Busoff即总线关闭态,一个CAN节点有三种状态,主动错误状态、被动错误状态以及总线关闭态。如下图可知进入Busoff的原因是因为发错错误大于255,在此状态节点不能收发报文。 单节点特殊情况 根据CAN规范,单节点发送报文NO ACK的错误也会使发送节点的T…

绕过防盗链的几种方式

需要进行防盗链的绕过,我们必须先要了解Iframe、Referer和XMLHttpRequest对象的基本知识 目录 Iframe 基本用法 sandbox 属性 loading 属性 Referer Referrer-policy 设置referrer的两种方法 下面举三个将referrer设置为no-referrer的例子: 首先…

js运算,笔试踩坑知识点

文章目录 前端面试系列运算符记住口诀先计算 后 赋值赋值从右向左 和 - -计算从左向右括号里的加减优先于括号外的乘除交换俩数的值答案 前端面试系列 js运算 笔试踩坑知识点 前端js面试题 (三) 前端js面试题(二) 前端js面试题 (…

【数据在内存中的存储】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 1. 整数在内存中的存储 2. 大小端字节序和字节序判断 2.1 什么是大小端? 2.2 为什么有大小端? 2.3 练习 2.3.1 练习1 2.3.2 练习2 2.3.3 练习3 2.3.4 …

uniapp发行web页面在老版本浏览器打开一片空白

uniapp发行的web页面(菜单->发行->网站-PC Web或手机H5),对于一些老的浏览器(或内核),打开一片空白; 而在新版本的浏览器中打开却正常。这是因为那些版本较低的浏览器不支持ES6的语法和新…

【Windows Docker:安装nginx】

拉镜像 docker pull nginx运行初始镜像 docker run -d -p 80:80 --name nginx nginx拷贝文件 docker cp nginx:/etc/nginx/nginx.conf D:/dockerFile/nginx/nginx.conf docker cp nginx:/etc/nginx/conf.d D:/dockerFile/nginx/conf.d docker cp nginx:/usr/share/nginx/htm…

JAVA基础5:分支语句

1.流程控制 1)流程控制语句分类 顺序结构分支结构(if,switch)循环结构(for,while,do...while) 2.顺序结构 顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行&a…

WebGL-Vue3-TS-Threejs:基础练习 / Javascript 3D library / demo

一、理解Three.js Three.js是一个用于WebGL渲染的JavaScript库。它提供了一组工具和类,用于创建和渲染3D图形和动画。简单理解(并不十分准确),Three.js之于WebGL,好比,jQuery.js之于JavaScript。 OpenGL …

Gated Context Aggregation Network for Image Dehazing and Deraining(GCANet)

1 总体概述 GCANet是端到端去雾的一篇代表性的文章,它摒弃以往使用手工设计的先验以及大气散射模型的使用,直接通过原始有雾图像估计出无雾图像J与有雾图像I之间的残差,图像恢复阶段直接使用网络输出的残差与输入有雾图像I之间的加和完成去雾…

跨境电商商城源码,支持多语言,开启全球贸易新篇章!

随着全球化的不断深入,跨境电商已经成为越来越多企业的选择。我们为您提供的跨境电商源码产品,具有强大的多语言支持功能,可轻松扩展至多个语言,助您迅速占领全球市场,实现业务的国际化发展。 一、多语言支持&#xff…

uniapp蓝牙搜索设备并列表展示

1.需求:3.0的桩可以值扫码通过蓝牙名字直接绑定,2.0的桩二维码无蓝牙名称则需通过蓝牙列表来绑定 2.碰到问题 1.0 蓝牙列表需要去重(蓝牙列表通过deviceId去重再放进展示列表) 2.0页面会卡顿(调用my.stopBluetoothDevi…

(附源码)基于spring boot 房屋租赁系统小程序-计算机毕设 88306

spring boot 房屋租赁系统小程序 目 录 摘要 1 绪论 1.1选题意义 1.2开发现状 1.3springboot框架介绍 1.4论文结构与章节安排 2 房屋租赁系统小程序系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.…

【Spring】AOP实现原理

注册AOP代理创建器 在平时开发过程中,如果想开启AOP,一般会使用EnableAspectJAutoProxy注解,这样在启动时,它会向Spring容器注册一个代理创建器用于创建代理对象,AOP使用的是AnnotationAwareAspectJAutoProxyCreator&…

MES系统数据集成系统源码

MES系统数据集成系统源码 1 MES的生产计划管理综述 生产计划的管理在MES系统中是非常重要的。我们知道,一般的情况下,企业的生产计划是由上层管理系统ERP来完成,那么MES中的生产计划和ERP的生产计划的不同点在于: ERP的生产计划…

选择振弦采集仪进行岩土工程监测时,根据不同工况选择合适的种类

选择振弦采集仪进行岩土工程监测时,根据不同工况选择合适的种类 岩土工程监测是保证工程质量和安全的重要手段。振弦采集仪是一种常用的岩土工程监测仪器,可用于对岩土工程场地振动环境的监测。它具有测量精度高、实时性强、易于安装、使用方便等特点。…

唯众技能大赛公开公平公正践行者

​近日,2023一带一路暨金砖国家技能发展与技术创新大赛网络综合布线赛项成功举办。唯众创始人辜渝傧对本次比赛情况就相关问题回答了记者提问。 采访人:第一个问题,咱们这一次“2023一带一路暨金砖国家技能发展与技术创新大赛之网络综合布线赛…