本软件工具仅限于学术交流使用,严格遵循相关法律法规,符合平台内容合法合规性,禁止用于任何商业用途!
抖音作为国内流量极为突出的短视频平台,拥有庞大的用户群体以及亿级以上的日活跃用户,其视频下方的评论区蕴含着丰富的信息价值。在合法合规的前提下,经过充分的研究与探索,为了助力客户能够更深入地理解消费者对于商品和品牌的看法与反馈,以更有效地把握消费者的喜好、需求和购买意图,我们开发了一款基于 Python 技术的工具,旨在在符合平台规则和相关法律法规的框架内,对抖音平台上公开且允许获取的评论数据进行收集分析。
我用python开发的爬虫采集工具【爬抖音搜索评论软件】,支持2种模式的评论采集:
用户可根据自身需求,在遵守相关规定的情况下,选择其中一种模式进行合规的评论数据收集与分析。
经过合规流程采集分析后得到的数据示例:
软件运行演示: 【软件演示】抖音评论区采集工具,支持2种模式:指定关键词和指定作品链接
bilibili.com/video/BV1fH21YEEDV
软件需符合相关法律法规的情况下使用。几点重要说明,请详读了解:
以上。
软件全部模块采用python语言开发,主要分工如下:
tkinter:GUI软件界面
requests:在合法合规前提下进行数据请求
json:解析符合规定获取到的响应数据
pandas:保存csv结果、在合法范围内进行数据清洗
logging:日志记录操作过程,以便检查合规性
出于版权以及确保合法合规使用的考虑,暂不公开源码,仅向符合使用条件且遵守相关规则的用户提供软件使用。
在开始进行合规的数据收集分析前,使用者需将自己通过合法途径获取的 cookie 值填入 cookie.txt 文件。同时,请务必严格遵守抖音平台对于 cookie 使用的相关规定。
爬取思路:作品关键词->作品链接->评论
先填写左上区的笔记筛选项,再填写右上区的评论筛选项,点击按钮 1 进行合规的数据收集操作。。
爬取思路:作品链接->评论
先填写中上区的作品链接,再填写右上区的评论筛选项,点击按钮 2 进行合规的数据收集操作。。
完整源码采用python作为开发语言,用到的技术框架:
tkinter:GUI软件界面
requests:爬虫请求
json: 解析响应数据
pandas:保存csv结果、数据清洗
logging:日志记录
软件界面核心代码:
# 创建主窗口
root = tk.Tk()
root.title('爬小红书搜索评论软件v1.1')
# 设置窗口大小
root.minsize(width=900, height=650)
爬虫部分代码:
# 发送请求
r = requests.get(url, headers=h1)
# 接收响应数据
json_data = r.json()
保存结果数据核心代码:
# 保存数据到DF
df = pd.DataFrame(
{
'笔记链接': 'https://www.xiaohongshu.com/explore/' + note_id,
'笔记链接_长': note_url2,
'页码': page,
'评论者昵称': nickname_list,
'评论者id': user_id_list,
'评论者主页链接': user_link_list,
'评论时间': create_time_list,
'评论IP属地': ip_list,
'评论点赞数': like_count_list,
'评论级别': comment_level_list,
'评论内容': content_list,
}
)
# 保存到csv
df.to_csv(self.result_file2, mode='a+', header=header, index=False, encoding='utf_8_sig')
日志记录功能核心代码:
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
软件首发公众号"老男孩的平凡之路",仅限于学术交流技术探讨,请勿用于商业用途,欢迎在遵守相关规则和法律的前提下交流探讨!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。