本工具仅限学术交流使用,严格遵守相关法律法规,符合平台内容的合法及合规性要求,禁止用于任何商业用途!
一、开发背景与效果展示
1.1 开发初衷
我是 @马哥python说 ,一枚10年+程序猿,现全职独立开发。
快手作为国内头部短视频社交平台,凭借其独特的普惠流量分发机制和庞大的创作者生态,覆盖了从一二线到下沉市场的海量用户群体。无论是热点追踪、内容分析还是用户洞察,快手都蕴含着丰富的数据价值。
针对快手平台数据的独特性,我用python独立开发了一款工具“爬快手聚合软件”。这款软件将评论采集、达人主页作品采集、链接转换三大功能集于一身,打造一站式的快手数据采集方案。
1.2 适用场景
软件适用于以下场景:
- 获客截流:通过目标行业、品牌热门作品下的评论区,精准定位潜在用户;
- 舆情分析:采集快手话题数据,用于社媒舆情监控、品牌口碑研究等;
- 内容参考:分析热门作品的内容风格与爆款话题,为创作方向提供数据支撑;
- 运营协作:处理不同格式的链接/uid互转,方便跨工具、跨平台的数据流转。
1.3 效果展示
功能1-采集搜索作品及评论(指定关键词采集作品和评论)
运行界面:
采集到的作品数据,包括12个字段:关键词,页码,视频标题,话题标签,视频链接,点赞数,观看数,视频时长_秒,发布时间,作者昵称,作者uid,作者主页链接。
采集到的评论数据,包括10个字段:作品id,作品链接,页码,用户昵称,用户id,用户主页,评论时间,评论点赞数,评论级别,评论内容。
功能2-采集详情作品(指定作品链接采集作品详情)
运行界面:
采集到的作品详情,包括18个字段:关键词,作品id,作品链接,视频标题,话题标签,作者昵称,作者uid,作者主页链接,发布时间,视频时长_秒,点赞数,观看数,评论数,收藏数,转发数,IP属地,封面链接,视频直链。
同时支持下载这些链接的视频mp4文件,方便归档,如下:
功能3-采集主页作品(指定主页链接采集作品)
运行界面:
采集到的主页作品数据包含12个字段:页码,作者昵称,uid,作者链接,视频标题,视频标签,视频链接,发布时间,视频时长,点赞数,收藏数,观看数。
同时支持下载主页中的视频mp4文件,方便归档,如下:
功能4-主页链接转快手号
运行界面:
结果数据:
功能5-快手号转主页链接
运行界面:
结果数据:
功能6-app端作品链接转pc端作品链接
运行界面:
结果数据:
以上是6个主要功能的介绍。
1.4 软件说明
使用前请留意以下几点:
1. Windows / Mac 均可直接运行,无需配置编程环境
2. 三大核心功能:① 关键词/作品链接采集评论 ② 主页链接采集作品 ③ uid与链接互转
3. 采用接口协议采集,非模拟浏览器等RPA方案,稳定性更高
4. 采集完成后,自动在当前文件夹生成 csv 结果文件
5. 每采集一页即自动保存一次csv,防止异常中断导致数据丢失(每页间隔 1~2s)
6. 运行过程记录详细日志,方便回溯排查
二、核心技术
2.1 模块分工
软件全部基于 Python 开发,各模块分工如下:
| 序号 | 模块 | 用途 |
|---|---|---|
| 1 | tkinter | 构建gui图形界面 |
| 2 | requests | 发送网络爬虫请求 |
| 3 | json | 解析接口返回的响应数据 |
| 4 | pandas | 清洗并保存csv数据结果 |
| 5 | logging | 记录运行日志 |
2.2 代码片段示例
发送请求并解析数据:
# 发送请求
r = requests.get(url, headers=h1, params=params)
# 解析数据
json_data = r.json()
遍历评论内容字段:
for data in json_data['rootCommentsV2']:
# 评论内容
content = data['content']
content_list.append(content)
保存数据到 csv 文件:
# 保存数据到DF
df = pd.DataFrame(
{
'作品id': video_id,
'作品链接': 'https://www.kuaishou.com/short-video/' + video_id,
'页码': page,
'用户昵称': author_name_list,
'用户id': author_id_list,
'用户主页': author_link_list,
'评论时间': create_time_list,
'评论点赞数': like_count_list,
'评论级别': comment_level_list,
'评论内容': content_list,
}
)
# 保存到csv
if os.path.exists(self.result_file2): # 如果文件存在,不再设置表头
header = False
else: # 否则,设置csv文件表头
header = True
df.to_csv(self.result_file2, mode='a+', index=False, header=header, encoding='utf_8_sig')
self.tk_show('视频[{}]第{}页已保存到csv: {}'.format(video_id, page, self.result_file2))
日志记录模块:
def get_logger(self):
logger = logging.getLogger(__name__)
formatter = "[%(asctime)s-%(filename)s][%(funcName)s-%(lineno)d]--%(message)s"
logger.setLevel(logging.DEBUG)
if not logger.handlers:
sh = logging.StreamHandler()
log_formatter = logging.Formatter(formatter, datefmt="%Y-%m-%d %H:%M:%S")
info_file_name = time.strftime("%Y-%m-%d") + ".log"
case_dir = "./logs/"
info_handler = TimedRotatingFileHandler(
filename=case_dir + info_file_name,
when="MIDNIGHT",
interval=1,
backupCount=7,
encoding="utf-8",
)
logger.addHandler(sh)
sh.setFormatter(log_formatter)
logger.addHandler(info_handler)
info_handler.setFormatter(log_formatter)
return logger
三、使用指南
3.1 配置 Cookie
启动采集前,先用《cookie小工具》自动配置个人cookie:
这样,就会自动写入软件目录下的 cookie.txt 文件,告别繁琐的手动获取过程。
3.2 登录软件
将 Cookie 配置好后,启动软件进入登录界面,点击登录完成身份认证。
3.3 开始采集
- 登录成功,选择所需功能模块(搜索作品及评论采集 / 主页作品采集 / 链接转换)
- 配置参数(关键词、时间范围、目标链接等)
- 点击「开始执行」,实时查看采集进度
- 采集完成,在当前文件夹查看 csv 数据文件或已下载的视频
3.4 演示视频
软件完整使用流程请参考演示视频:
mp.weixin.qq.com/s/bqP01MKMjP9oazzW0gkh0Q
END、原创声明
"爬快手聚合软件"首发于众公号"老男孩的平凡之路",软件仅限于学术交流技术探讨,请勿用于商业用途!