【爬虫实战】全过程详细讲解如何使用python获取抖音评论,包括二级评论

简介:

前两天,TaoTao发布了一篇关于“获取抖音评论”的文章。但是之前的那一篇包涵的代码呢仅仅只能获取一级评论。虽然说抖音的一级评论挺精彩的了,但是其实二级评论更加有意思,同时二级评论的数量是很多。所以二级评论是非常值得我们关注的。因此TaoTao花了一些时间写了一下这块的代码。接下来就让TaoTao带着大家来看一下整个过程是怎样的吧!
视频讲解如下:

【爬虫实战】全过程详细讲解如何使用python获取抖音评论,包括二级评论

环境:

代码执行环境如下:
Vscode
Windows10
Anaconda
request
csv
fake_useragent

需要执行代码的同学,按照上面的环境检查自己的环境。如果不满足的话,安装一下即可。安装方法,也很简单,pip安装指定的库。如果因为网络的原因没有办法安装,使用清华镜像站进行安装即可。
安装命令如下:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple fake_useragent

代码执行:

首先需要登录到抖音,注意这里是需要登录的哦,不然获取不到cookie值。
然后点击评论区,之后我们再按F12,接着再将评论区往下拉。看到list/?/device_platform
这个文件,就可以了。然后点击Preview中的任何一个comments。可以看到这里就有aweme_id的字段,然后给这个复制下来。
在这里插入图片描述
复制下来以后,就可以给这个数据粘贴到代码中的aweme_id了,具体如下:
在这里插入图片描述
同样的方法,还需要给cookie的值替换成自己的。
Cookie值获取的方式,依然是在list/?/device_platform文件中找,但是它是在Headers中,具体的如下图所示:
在这里插入图片描述
获取到了这个值以后呢,需要给这个cookie的替换到代码中,具体替换位置如下所示:
在这里插入图片描述
完成了上述的操作以后,就可以Run代码了。还是需要提一嘴,Run代码的方式大体上就两种,一种是在idea中如:pycharm中直接点击Run键;另外一种就是我下面的方式,直接在命令行中使用命令的方式执行。执行命令:python douyinSecondComments.py
执行过程如下所示:
在这里插入图片描述
最终的数据如下所示:
主要包括:‘页码’, ‘评论id’, ‘评论发布时间’,‘评论点赞数’,‘评论发布ip’, ‘评论内容’,‘评论用户名’,‘用户主页链接’,‘用户抖音号’
详细如下所示:
主评论:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
子评论:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码讲解:

我们可以看到,终端命令行中的输出信息有很多,具体上可以分为两类:一类是评论信息,这里的话主要就是:主评论还有子评论了。另一类就是一些相关信息的输出,主要是:浏览器的模拟,还有就是休眠。至于为什么要模拟浏览器以及设置主、子评论的休眠,主要是为了防止被反爬。
然后代码设置的话,如下所示:

user_agent = UserAgent()  random.seed()  headers['user-agent'] = user_agent.random  response = requests.get(url, params=params, headers=headers, proxies=proxies)print(headers['user-agent'])  sleep_time = random.uniform(0, 5)  print("sleep time:", sleep_time)  print("爬取评论数量:", comments_count)  print("======================")  time.sleep(sleep_time)

同时,我们从抖音请求到的数据时间,是一个时间戳,所以我这里又写了一个将时间戳转换成普通时间的代码,具体如下所示:

def timestampToNormalTime(timestamp):return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))

然后就是数据的持久化保存了。持久化的方式有很多:比如数据库、文件保存等等。我这里采用的就是直接保存在csv中。因为这样的话,在后续的数据可视化使用是非常方便的。
使用csv保存呢,主要分为两步,一步是进行csv文件的创建,另一个就是对csv文件的数据追加。具体的代码如下所示:

with open("douyinComments.csv", mode="a", newline='', encoding="utf-8-sig") as f:csv_write = csv.writer(f)csv_write.writerow(['页码', '评论id', '评论发布时间','评论点赞数','评论发布ip', '评论内容','评论用户名','用户主页链接','用户抖音号'])with open("douyinSecondComments.csv", mode="a", newline='', encoding="utf-8-sig") as f:csv_write = csv.writer(f)csv_write.writerow(['页码', '评论id', '评论发布时间','评论点赞数','评论发布ip', '评论内容','评论用户名','用户主页链接','用户抖音号'])with open("douyinComments.csv", mode="a", newline='', encoding="utf-8-sig") as f:csv_write = csv.writer(f)csv_write.writerow([page, cid, create_time, digg_count, ip_label, text, nickname, sec_uid, unique_id])with open("douyinSecondComments.csv", mode="a", newline='', encoding="utf-8-sig") as f:csv_write = csv.writer(f)csv_write.writerow([sub_page,cid,create_time,digg_count,ip_label,text,nickname,sec_uid,unique_id])

更加详细的讲解请看上面的视频!
源码链接:【爬虫实战】全过程详细讲解如何使用python获取抖音评论,包括二级评论
由于笔者能力有限,在某些表述方面难免有些不准确,还请多多包涵!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React Native学习记录

一、创建RN项目的时候是空文件夹的问题 1.使用npx react-native init RNDemos初始化项目的时候,会报错,模版错误,然后创建出来一个空的文件夹 2.如果出现这种情况,需要设置npm install -g react-native-cli 3.安装完成以后再次初…

关于Django部署

首先了解一下开发环境服务器跟生产环境服务器有何不同。 一、我们通过 python manage.py runserver 启动开发环境服务器,这条命令背后做了哪些事情? 1、首先加载Django项目的设置(settings) 2、检查数据库迁移,确保数…

信任与创新 | 回顾通付盾的2023!

-END- 数信云,基于区块链与人工智能的数据安全应用与服务平台

nodejs学习计划--(八)MongoDB数据库

MongoDB 1. 简介 1. Mongodb 是什么 MongoDB 是一个基于分布式文件存储的数据库,官方地址 https://www.mongodb.com/ 2. 数据库是什么 数据库(DataBase)是按照数据结构来组织、存储和管理数据的 应用程序 3. 数据库的作用 数据库的主要…

苹果电脑Mac清理内存怎么清理卸载残留

苹果电脑中的应用程序大部分是可以通过将其拖拽至废纸篓并倾倒来卸载的。但是部分程序在卸载后仍有残留文件,比如support文件和pref设置等文件的。小编今天介绍下苹果电脑清理内存怎么清理卸载残留以及好用的清理技巧分享。 一、苹果电脑清理内存怎么清理卸载残留 …

2024年美赛数学建模F题思路分析 - 减少非法野生动物贸易

# 1 赛题 问题F:减少非法野生动物贸易 非法的野生动物贸易会对我们的环境产生负面影响,并威胁到全球的生物多样性。据估计,它每年涉及高达265亿美元,被认为是全球第四大非法交易。[1]你将开发一个由数据驱动的5年项目&#xff0c…

计算机设计大赛 深度学习 python opencv 火焰检测识别

文章目录 0 前言1 基于YOLO的火焰检测与识别2 课题背景3 卷积神经网络3.1 卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV54.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 数据集准备5.1 数…

shell中exit与return以及source与sh的区别

https://www.cnblogs.com/yldf/p/11900048.htmlhttps://www.cnblogs.com/yldf/p/11900048.html 直接看例子 [rootlocalhost test]# cat b2.sh echo b2 exit 1 [rootlocalhost test]# cat c2.sh source ./b2.sh return $? [rootlocalhost test]# sh c2.sh b2 [rootlocalhost…

2024机械工程师面试题

1.常用的机械画图软件有哪些 SolidWorks、Pro/e、CATIA、UG、Creo、CAD、inventor。CAXA电子图板. 2.第一视角是___,第三视角是___; 只要区别是:物体所处的位置不同。一般中国都使用第一视角的。 3.气缸属于_____执行元件,电磁…

Docker部署Grafana+Promethus监控Mysql和服务器

一、Grafana部署所需资源 Grafana 需要最少的系统资源: 建议的最小内存:512 MB建议的最低 CPU:1 官方文档:https://grafana.com/docs/grafana/latest/getting-started/build-first-dashboard/ 可以看到,我的这台服务…

【测试运维】性能测试笔记文档第2篇:性能测试分类和指标(已分享,附代码)

本系列文章md笔记(已分享)主要讨论性能测试相关知识。入门阶段:认识性能测试分类-(负载测试、压力测试、并发测试、稳定性测试),常用性能测试指标-(吞吐量、并发数、响应时间、点击数…),性能测试工具选择。性能脚本&a…

微服务中间件 RabbitMq学习

1、为什么需要Mq 例如在用户注册业务中,用户注册成功后 需要发注册邮件和注册短信,传统的做法有两种 1.串行的方式;2.并行的方式 ; 假设三个业务节点分别使用50ms,串行方式使用时间150ms,并行使用时间10…