【爬虫实战】全过程详细讲解如何使用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.rhkb.cn/news/251577.html

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

相关文章

论文阅读-在分布式数据库环境中对哈希算法进行负载均衡基准测试

论文名称:Benchmarking Hashing Algorithms for Load Balancing in a Distributed Database Environment 摘要 现代高负载应用使用多个数据库实例存储数据。这样的架构需要数据一致性,并且确保数据在节点之间均匀分布很重要。负载均衡被用来实现这些目…

在windows平台上mysql的安装教程

1.下载 mysql下载网址:https://dev.mysql.com/downloads/installer/ 这里直接选择的是mysql的社区版。自己使用直接选择免费的就行 直接选择下载 2.安装过程 选择Server only 就行 下一步 下一步 下一步,选择弱密码把,方便学习和自己使用 设置…

CAN通信----(创芯科技)CAN分析仪----转CANTest使用

点击进入官方链接进行下载创芯科技 CAN分析仪资料包: 创芯科技的官网:https://m.zhcxgd.com/ 我使用的是至尊版红色带OBD转接头的: 所有下图是我选择…

操作系统-【预备学习-1】(Linux 文件目录)

文章目录 相关知识目录结构进入目录补充查看目录创建文件删除文件创建文件夹删除文件夹文件和文件夹拷贝文件和文件夹移动/重命名 任务要求 相关知识 目录结构 Linux 文件系统是树形层次结构,具体如下图所示,最重要的是根目录(/&#xff09…

IP协议(2) 和 数据链路层协议基础

IP协议续 1.路由选择 在复杂的网络结构中,我们需要找到一个通往终点的路线,这就是路由选择 举个例子:我们在没有手机导航之前,想去一个地方得是到一个地方问一下路的方式最终找到目的地 路由的过程,其实就是样子问路的过程 1.当IP数据包到达路由器的时候,会查看目的IP 2.路由器…

考研中常见的算法-逆置

元素逆置 概述:其实就是将 第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,依次到中间位置。用途:可用于数组的移动,字符串反转,链表反转操作,栈和队列反转等操作。 逆置图解 …

(已解决)spingboot 后端发送QQ邮箱验证码

打开QQ邮箱pop3请求服务&#xff1a;&#xff08;按照QQ邮箱引导操作&#xff09; 导入依赖&#xff08;不是maven项目就自己添加jar包&#xff09;&#xff1a; <!-- 邮件发送--><dependency><groupId>org.springframework.boot</groupId><…

重写Sylar基于协程的服务器(7、TcpServer HttpServer的设计与实现)

重写Sylar基于协程的服务器&#xff08;7、TcpServer & HttpServer的设计与实现&#xff09; 重写Sylar基于协程的服务器系列&#xff1a; 重写Sylar基于协程的服务器&#xff08;0、搭建开发环境以及项目框架 || 下载编译简化版Sylar&#xff09; 重写Sylar基于协程的服务…

windows 搭建nginx http服务

下载 下面链接直接点击下载&#xff0c;下载的就是包含rtmp服务器相关功能的&#xff0c;只不过需要配置下 Index of /download/ (ecsds.eu) nginx 1.7.11.3 Gryphon.zip直接点击额下面的连接即可下载 http://nginx-win.ecsds.eu/download/nginx%201.7.11.3%20Gryphon.zip …

26.云原生ArgoCD高级之ApplicationSet

云原生专栏大纲 文章目录 ApplicationSet介绍ApplicationSet 特性ApplicationSet 安装ApplicationSet 工作原理ApplicationSet 生成器列表类型生成器集群生成器基础使用方法Label Selector 指定集群Values 字段传递额外的参数 git生成器git目录生成参数排除目录git文件生成器矩…

详解洛谷P2912 [USACO08OCT] Pasture Walking G(牧场行走)(lca模板题)

题目 思路 一道模板题&#xff0c;没啥好说的&#xff0c;直接见代码 代码 #include <bits/stdc.h> using namespace std; int n,q,a,to[100001][22],b,deep[100001],c,t[1000001]; struct ff {int id,len; }; vector<ff> vec[100001]; void dfs(int x,int fa,i…

【Script】使用pyOpenAnnotate搭建半自动标注工具(附python源码)

文章目录 0. Background1. Method2. Code3. Example: 雄鹿红外图像标注3.1 选择色彩空间3.2 执行阈值3.3 执行形态学操作3.4 轮廓分析以找到边界框3.5 过滤不需要的轮廓3.6 绘制边界框3.7 以需要的格式保存Reference本文将手把手教你用Python和OpenCV搭建一个半自动标注工具(包…

QT6调用音频输入输出(超详细)

目录 一、QT6音频调用与QT5的区别 1.QAudioSource代替QAudioInput类 2.QAudioSink代替QAudioOutput类 二、音频操作中Push和Pull的区别 三、依托于Websocket实现实时对讲机 1.AudioIputDevices类 2.AudioOutputDevices类 3.实现的AudioHandler类完整内容 本人实际是要完…

【学习笔记】详解换根法(换根DP)

一.换根DP的概念 1.换根DP是什么&#xff1f; 换根DP&#xff0c;又叫二次扫描&#xff0c;是树形DP的一种。 2.换根DP能解决什么问题&#xff1f; 换根DP能解决不指定根结点&#xff0c;并且根节点的变化会对一些值产生影响的问题。例如子结点深度和、点权和等。如果要 暴力…

腾讯云幻兽帕鲁Palworld服务器价格表,2024年2月最新

腾讯云幻兽帕鲁服务器价格32元起&#xff0c;4核16G12M配置32元1个月、96元3个月、156元6个月、312元一年&#xff0c;支持4-8个玩家&#xff1b;8核32G22M幻兽帕鲁服务器115元1个月、345元3个月&#xff0c;支持10到20人在线开黑。腾讯云百科txybk.com分享更多4核8G12M、16核6…

vue3+threejs+koa可视化项目——模型文件上传(第四步)

文章目录 ⭐前言&#x1f496;往期node系列文章&#x1f496;threejs系列相关文章&#x1f496;vue3threejs系列 ⭐koa后端文件上传(koa-body)&#x1f496;自动创建目录&#x1f496;自定义目录上传&#x1f496;apifox自测上传接口 ⭐vue3前端上传模型文件&#x1f496; axio…

docker 构建个人博客网站

1、项目地址 https://gitee.com/hhll/blog-hangliang.git 2、打包docker镜像并上传docker hub 【1】注册docker hub账号https://hub.docker.com/ 【2】在docker hub建对应的仓库 【3】登录docker hub并打包上传前后端镜像 sudo docker login -u xxxx 密码 xxxxxx 后端&am…

skywalking链路追踪

skywalking 1.简介1.1 skywalking介绍1.2 链路追踪框架对比1.3 Skywalking架构 2 环境构建2.1 windows环境2.1.1 启动skywalking服务和UI界面2.1.2 在IDEA启动项目中使用Skywalking2.1.3 skywalking持久化 2.2 linux环境 1.简介 微服务架构已经是一个很通用的系统架构&#xf…

WordPress可以做企业官网吗?如何用wordpress建公司网站?

我们在国内看到很多个人博客网站都是使用WordPress搭建&#xff0c;但是企业官网的相对少一些&#xff0c;那么WordPress可以做企业官网吗&#xff1f;如何用wordpress建公司网站呢&#xff1f;下面boke112百科就跟大家简单说一下。 WordPress是一款免费开源的内容管理系统&am…

MacBook有必要装清理软件吗?CleanMyMac X v4.14.6 直装特别版 附安装教程

MacBook是苹果公司的一款高端笔记本电脑&#xff0c;但是&#xff0c;随着使用时间的增长&#xff0c;MacBook也会出现一些问题&#xff0c;比如运行缓慢、卡顿、垃圾文件堆积、磁盘空间不足等。这些问题不仅影响了用户的使用体验&#xff0c;也可能对MacBook的寿命和安全性造成…