在这篇博客中,我们将学习如何抓取 TikTok 评论。如果您想要详细的教程 抓取 TikTok 数据,请查看我们的指南“如何抓取 TikTok“。

到 2024 年,TikTok 将拥有超过 4十亿次下载 全球范围内,使其成为最近增长最快的社交媒体平台之一。从青少年到年轻人,甚至老年人,各个年龄段的人都在使用它,这增加了它的巨大受欢迎程度和对文化的影响力。

TikTok 年龄和性别统计数据

TikTok 视频的评论提供了有关用户参与度、情绪、趋势等的见解。 TikTok 评论数据使研究人员、营销人员和数据爱好者能够深入研究用户交互、识别趋势内容并更好地了解 TikTok 充满活力的社区。

那么让我们开始抓取 TikTok 评论 蟒蛇.

目录

  1. TikTok 评论抓取要点
  2. 设置Python环境并安装必要的库
  3. 提取 TikTok 视频评论 HTML
  4. 以 JSON 格式提取 TikTok 评论
  5. 处理 TikTok 评论抓取中的分页
  6. 保存抓取的 TikTok 评论数据
  7. 带分页和保存的完整代码
  8. 常见问题解答(FAQ)

1. TikTok评论抓取要点

对于本教程,您需要具备 Python 语言、HTML 和 CSS 的基本知识。其次,设置 Crawlbase 爬取 API 从 TikTok 上抓取评论。您需要做的就是 注册 到 Crawlbase,您将获得 1000 个免费请求,免费抓取 TikTok 评论。

驶向 账户文件 获取您的令牌。

账户文件

在仪表板中,您会发现两种类型的令牌。普通令牌适用于常规网站,JS 令牌适用于具有大量动态或 JavaScript 内容的网站。由于 TikTok 使用大量 JavaScript,我们将使用 JS 令牌。

现在进行 Python 设置,确保已安装 Python。您可以从官方下载并安装Python Python网站 基于您的操作系统。此外,请确保安装了 pip(Python 包管理器)以安装必要的库和依赖项。

现在,您已准备好开始使用 Python 和 Crawlbase Crawling API 抓取 TikTok 视频评论。

2. 设置Python环境并安装必要的库

要开始抓取 TikTok 视频评论,请按照以下步骤设置您的项目环境:

Python安装:如果尚未安装,请从 Python 官方网站下载并安装 Python。确保在安装过程中将 Python 添加到系统的 PATH 中。您可以通过打开命令提示符或终端并运行以下命令来验证安装:

1
python --version

如果 Python 安装正确,您将看到安装的版本号。

创建新的Python环境:建议在虚拟环境中工作来管理项目依赖性。使用以下命令创建新的虚拟环境:

1
2
3
4
5
6
7
8
# 创建一个新的虚拟环境
python -m venv myenv

# 激活虚拟环境
# 在 Windows 上
myenv\Scripts\activate
# 在 macOS/Linux 上
资源 myenv/bin/激活

安装必要的库:安装网络抓取和数据提取所需的Python库。主要库包括 requests, beautifulsoup4crawlbase。您可以使用 Python 包管理器 pip 安装这些库:

1
pip install 请求 beautifulsoup4 爬网库

初始化项目文件:新建一个Python脚本文件 tiktok_comments_scraper.py 用于您的 TikTok 评论抓取项目。您可以使用您选择的任何文本编辑器或集成开发环境 (IDE) 来编写 Python 代码。

设置好项目环境并安装库后,您就可以开始抓取 TikTok 视频评论了。让我们进入下一步。

3.提取TikTok视频评论HTML

要开始抓取 TikTok 视频评论,我们需要检索评论所在 TikTok 页面的 HTML 内容。有两种常见方法可以实现此目的:使用 标准HTTP请求库 喜欢 requests 或使用 Crawlbase 抓取 API..

使用通用方法提取 TikTok 评论 HTML

在常见方法中,我们使用 Python 库,例如 requests 获取 TikTok 视频页面的 HTML 内容。以下是如何实现此目标的基本示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
进口 要求

# 使用请求获取 HTML 的函数
DEF 获取html(网址):
尝试:
响应 = requests.get(url)
if 响应.status_code == 200:
回报 响应文本
其他:
打印(f"无法获取 HTML。状态代码: {响应.status_code}")
回报 不包含
特殊课程 as e:
打印(f“发生错误: {STR(e)}")
回报 不包含

# 用法示例
tiktok_url = “https://www.tiktok.com/@khaby.lame/video/7255327059302419738”
html_content = fetch_html(tiktok_url)
if html_内容:
打印(html_内容)

将上面的代码复制到你的 tiktok_comments_scraper.py 文件并在文件所在的目录中运行以下命令。

1
python tiktok_comments_scraper.py

您将看到页面的 HTML 打印在终端上。

HTML 输出的常见方法

但为什么 HTML 中没有有用的信息呢? 这是因为 TikTok 依赖 JavaScript 渲染来动态加载必要数据。不幸的是,使用传统的抓取方法,访问这些数据可能具有挑战性。

常见的抓取方法的局限性

使用以下库获取 HTML 的常见方法 requests 抓取 TikTok 视频评论时可能会遇到限制。这种方法的一些问题包括:

常见的网页抓取方法问题
  1. 有限的 JavaScript 执行:标准 HTTP 请求不会执行 JavaScript,这意味着动态加载的内容(例如 TikTok 视频的评论)可能无法准确捕获。
  2. 数据检索不完整:TikTok 页面通常会异步或通过 AJAX 请求加载评论,单个 HTTP 请求可能无法完全捕获这些评论。因此,获取的 HTML 可能缺少某些元素或包含占位符而不是实际注释。
  3. 速率限制和 IP 阻止:使用传统方法持续抓取可能会触发 TikTok 服务器上的速率限制或 IP 封锁机制,导致访问受限或暂时禁止。

为了克服这些问题并确保准确抓取 TikTok 视频评论,可以使用替代方法,例如使用 无头浏览器 or 动态渲染API 可能有必要。其中一个 API 是 Crawlbase 爬取 API.

使用 Crawlbase 抓取 API 提取 HTML

为了克服常见方法的局限性并有效地获取 TikTok 视频评论 HTML,我们可以利用 Crawlbase 爬取 API。该API允许我们获取TikTok页面渲染的HTML内容,包括 动态加载的内容.

以下是如何使用 Crawlbase Crawling API 检索 TikTok 视频评论 HTML:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 爬行基地 进口 抓取API

# 初始化Crawlbase CrawlingAPI对象
爬行 API = 爬行 API({“令牌”: “CRAWLBASE_JS_TOKEN”})

选项= {
'ajax_等待': '真的',
'页面等待': 10000,
“用户代理”: “Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0”
}

# 使用 Crawlbase Crawling API 获取 HTML 的函数
DEF fetch_html_crawlbase(网址):
全球化 爬行API,选项
尝试:
响应=crawling_api.get(url,选项)
if 回复[“标题”]['pc_status'] == '200':
回报 回复['身体']。解码('utf-8')
其他:
打印(f“无法获取 HTML。Crawlbase 状态代码: {回复[“标题”]['pc_status']}")
回报 不包含
特殊课程 as e:
打印(f“发生错误: {STR(e)}")
回报 不包含

# 用法示例
tiktok_url = “https://www.tiktok.com/@khaby.lame/video/7255327059302419738”
html_content = fetch_html_crawlbase(tiktok_url)
if html_内容:
打印(html_内容)

使用 Crawlbase 抓取 API 可以让我们高效地获取 TikTok 页面的 HTML 内容,确保准确捕获 JavaScript 渲染的内容。这种方法对于抓取 TikTok 视频评论等动态内容特别有用。

抓取 API HTML 输出

4.提取JSON格式的TikTok评论

抓取 TikTok 评论涉及提取视频作者信息、评论列表、评论内容和评论者详细信息等各种组件。让我们通过专业高效的代码示例来深入诊断每一步。

抓取视频作者信息

从视频页面抓取评论时,保持相应视频及其上传者的准确记录以进行全面分析和归因至关重要。要从 TikTok 视频页面中抓取视频作者信息,我们可以提取用户名、个人资料 URL 和个人资料图片等详细信息。

视频作者 HTML 元素

下面的代码示例演示了如何实现此目的:

1
2
3
4
5
6
DEF scrape_video_author_info():
作者信息 = {}
作者信息[“用户名”] = soup.select_one(“span[data-e2e='浏览用户名']”).text.strip()
作者信息[“用户个人资料网址”] = soup.select_one(“a[data-e2e='浏览用户头像']”)[“参考”]
作者信息[“用户图片网址”] = soup.select_one(“a[data-e2e='浏览用户头像'] img”)[“源”]
回报 作者信息

抓取评论列表

要从 TikTok 视频页面中抓取评论列表,我们可以提取包含评论的 HTML 元素。

评论列表 HTML 元素

下面的代码示例演示了如何实现此目的:

1
2
3
DEF scrape_comments_listing():
comments_listing = soup.select(“div[data-e2e='搜索评论容器'] > div[class*='CommentListContainer'] > div[class*='DivCommentItemContainer']”)
回报 评论列表

抓取评论内容

为了抓取每个评论的内容,我们可以提取评论元素的文本内容。

评论内容 HTML 元素

下面的代码示例演示了如何实现此目的:

1
2
3
4
DEF scrape_comment_content(评论):
评论内容 = {}
评论内容[‘评论内容’] = 评论.select_one(“div[class*='DivCommentContentContainer'] p[data-e2e='comment-level-1'] > 跨度”).text.strip()
回报 评论内容

抓取评论者详细信息

要抓取评论者的详细信息,例如他们的用户名和个人资料 URL,我们可以从评论元素中提取相关信息。

评论者详细信息 HTML 元素

下面的代码示例演示了如何实现此目的:

1
2
3
4
5
DEF scrape_commenter_details(评论):
评论者详细信息 = {}
评论者详细信息[“评论者用户名”] = 评论.select_one(“div[class*='DivCommentContentContainer'] span[data-e2e='comment-username-1']”).text.strip()
评论者详细信息[“评论者个人资料 URL”] = 评论.select_one(“div[class*='DivCommentContentContainer'] > a[data-e2e='comment-avatar-1']”)。得到(“参考”)
回报 评论者详细信息

完整的代码

现在,让我们将这些抓取功能组合成一个完整的代码示例,提取视频作者信息、评论列表、评论内容和评论者详细信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 爬行基地 进口 抓取API
bs4 进口 美丽汤
进口 JSON

# 初始化Crawlbase CrawlingAPI对象
爬行 API = 爬行 API({“令牌”: “CRAWLBASE_JS_TOKEN”})

选项= {
'ajax_等待': '真的',
'页面等待': 10000,
“用户代理”: “Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如 Gecko)Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0”
}

# 使用 Crawlbase Crawling API 获取 HTML 的函数
DEF fetch_html_crawlbase(网址):
全球化 爬行API,选项
尝试:
响应=crawling_api.get(url,选项)
if 回复[“标题”]['pc_status'] == '200':
回报 回复['身体']。解码('utf-8')
其他:
打印(f“无法获取 HTML。Crawlbase 状态代码: {回复[“标题”]['pc_status']}")
回报 不包含
特殊课程 as e:
打印(f“发生错误: {STR(e)}")
回报 不包含

DEF scrape_video_author_info():
作者信息 = {}
作者信息[“用户名”] = soup.select_one(“span[data-e2e='浏览用户名']”).text.strip()
作者信息[“用户个人资料网址”] = soup.select_one(“a[data-e2e='浏览用户头像']”)[“参考”]
作者信息[“用户图片网址”] = soup.select_one(“a[data-e2e='浏览用户头像'] img”)[“源”]
回报 作者信息

DEF scrape_comments_listing():
comments_listing = soup.select(“div[data-e2e='搜索评论容器'] > div[class*='CommentListContainer'] > div[class*='DivCommentItemContainer']”)
回报 评论列表

DEF scrape_comment_content(评论):
评论内容 = {}
评论内容[‘评论内容’] = 评论.select_one(“div[class*='DivCommentContentContainer'] p[data-e2e='comment-level-1'] > 跨度”).text.strip()
回报 评论内容

DEF scrape_commenter_details(评论):
评论者详细信息 = {}
评论者详细信息[“评论者用户名”] = 评论.select_one(“div[class*='DivCommentContentContainer'] span[data-e2e='comment-username-1']”).text.strip()
评论者详细信息[“评论者个人资料 URL”] = 评论.select_one(“div[class*='DivCommentContentContainer'] > a[data-e2e='comment-avatar-1']”)。得到(“参考”)
回报 评论者详细信息

DEF ():
抓取数据 = {}

# 获取 TikTok 视频页面的 HTML 内容
html_content = fetch_html_crawlbase(“https://www.tiktok.com/@khaby.lame/video/7255327059302419738”)

# 使用 BeautifulSoup 解析 HTML 内容
汤 = BeautifulSoup(html_content, “html.解析器”)

# 抓取视频作者信息
刮取的数据[“作者信息”] = scrape_video_author_info(汤)

# 抓取评论列表
comments_listing = scrape_comments_listing(汤)

# 迭代评论并抓取评论内容和评论者详细信息
评论列表 = []
评论 in 评论列表:
评论详细信息 = {}
comments_detail.update(scrape_comment_content(评论))
comments_detail.update(scrape_commenter_details(评论))
comments_list.append(comments_detail)

刮取的数据['注释'] = 评论列表

# 打印抓取的结果
打印(json.dumps(scraped_data, 缩进=2, 确保_ascii=))

if __名字__ == “__主要的__”:
主()

示例输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{
「作者信息」: {
“用户名”: “哈比·拉梅”,
“用户个人资料网址”: “https://www.tiktok.com/@khaby.lame”,
“用户图片网址”: “./永远相信小罗伯特·唐尼#oppenheimer #imax _ TikTok_files/6595ee956e2304779514b56c2f9cb666~c5_100x100.jpeg”
},
“评论”: [
{
「评论内容」: “是那个钢铁侠吗?”,
“评论者用户名”: “疯狂”,
“评论者个人资料 URL”: “https://www.tiktok.com/@dezzznuts19”
},
{
「评论内容」: “等等,他还活着吗?”,
“评论者用户名”: 《模糊面孔先生》,
“评论者个人资料 URL”: “https://www.tiktok.com/@mr.blurryfacee21”
},
{
「评论内容」: “托尼?😳”,
“评论者用户名”: “弗朗西斯科罗萨莱斯”,
“评论者个人资料 URL”: “https://www.tiktok.com/@franciscorosalles”
},
{
「评论内容」: “那是托尼吗”,
“评论者用户名”: 《深渊之死》,
“评论者个人资料 URL”: “https://www.tiktok.com/@gt.clock.a”
},
{
「评论内容」: “第二”,
“评论者用户名”: “🇷🇸☠️🇷🇸”,
“评论者个人资料 URL”: “https://www.tiktok.com/@tiktok_zenox7”
},
{
「评论内容」: “最好的💗💗💗”,
“评论者用户名”: “🍓 L eti 🍓”,
“评论者个人资料 URL”: “https://www.tiktok.com/@leticiiamurilloo”
},
{
「评论内容」: “钢铁侠😱”,
“评论者用户名”: “鱼直升机”,
“评论者个人资料 URL”: “https://www.tiktok.com/@hugobosskingman.cool88”
},
..... 更多的
]
}

5. 处理 TikTok 评论抓取中的分页

TikTok 通常采用无限滚动来动态加载更多评论。为了处理分页,我们可以利用 Crawlbase Crawling API scroll 范围。默认情况下,滚动间隔设置为 10 秒,但您可以使用 scroll_interval 参数来改变它。以下是如何使用 Crawlbase 抓取 API 处理分页的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 通过滚动分页获取 HTML 内容的函数
DEF fetch_html_with_pagination_crawlbase(网址):
全球化 爬行API

# 设置滚动分页的 Crawlbase API 参数
选项= {
'ajax_等待': '真的',
'用户代理': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 如 Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0',
'滚动': '真的',
'滚动间隔': 20000 #(20 秒)
}

尝试:
响应=crawling_api.get(url,选项)
if 回复[“标题”]['pc_status'] == '200':
回报 回复['身体']。解码('utf-8')
其他:
打印(f“无法获取 HTML。Crawlbase 状态代码: {回复[“标题”]['pc_status']}")
回报 不包含
特殊课程 as e:
打印(f“发生错误: {STR(e)}")
回报 不包含

6. 保存抓取的 TikTok 评论数据

成功抓取 TikTok 评论后,保存提取的数据以供进一步分析和将来参考至关重要。在这里,我们将探讨两种存储抓取的 TikTok 评论数据的常用方法:保存到 Excel 文件和保存到 SQLite 数据库。

保存到 Excel 文件

Excel 文件提供了一种组织和分析抓取数据的便捷方法,使其成为存储 TikTok 评论等结构化信息的流行选择。 Python 提供了类似的库 pandas 用于有效处理数据帧和 openpyxl 用于将数据写入 Excel 文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
进口 大熊猫 as pd

# 保存评论数据到Excel的函数
DEF 保存到Excel(数据、文件名):
作者信息=数据[“作者信息”]
评论=数据['注释']

# 扁平化作者信息
平面作者信息 = {'作者_用户名': 作者信息['用户名'],
“作者个人资料 URL”: 作者信息[“用户个人资料 URL”],
'作者_图片_URL': 作者信息['用户图片 URL']}

# 扁平化评论
扁平评论= [{'评论内容': 评论[‘评论内容’],
'评论者_用户名': 评论['评论者用户名'],
'Commenter_Profile_URL': 评论[“评论者个人资料 URL”]} 评论 in 注释]

# 创建数据框
author_df = pd.DataFrame([flat_author_info])
comments_df = pd.DataFrame(flat_comments)

# 保存到Excel
pd.ExcelWriter(文件名) as 作家:
author_df.to_excel(作者,sheet_name=“作者信息”, 索引=)
comments_df.to_excel(作者,sheet_name='注释', 索引=)

打印(“数据已成功保存到 Excel 文件。”)

save_to_excel(data, filename):

此功能将评论数据与作者信息一起保存到 Excel 文件中。它需要两个参数:data(包含作者信息和注释的字典)和 filename(将保存数据的 Excel 文件的名称)。

函数内部:

  • 作者信息和评论摘自 data 字典。
  • 作者信息被扁平化到字典中 flat_author_info.
  • 评论被扁平化为字典列表 flat_comments.
  • 创建两个 DataFrame:一个用于作者信息(author_df)和一个评论(comments_df).
  • DataFrames 使用以下命令写入 Excel 文件中的不同工作表 pd.ExcelWriter.
  • 最后,打印一条成功消息,表明数据已保存到 Excel 文件中。

保存到 SQLite 数据库

SQLite 数据库提供了一种轻量级且独立的解决方案,用于在本地存储结构化数据。 Python 提供了 sqlite3 模块用于与 SQLite 数据库交互。我们可以创建一个表来存储TikTok评论数据,并将抓取的数据插入到表中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
进口 sqlite3

# 如果表不存在则创建函数
DEF 如果不存在则创建表(数据库文件名、表名):
尝试:
conn = sqlite3.connect(db_filename)
# 创建或追加到 SQLite 表
创建表sql = f'''如果不存在则创建表 {表名} (
作者_用户名文本,
作者个人资料 URL 文本,
作者_图片_URL 文本,
评论_内容文本,
Commenter_用户名文本,
Commenter_Profile_URL 文本
)'''
conn.execute(create_table_sql)
conn.commit()
sqlite3.错误 as e:
打印(f"创建 SQLite 表时出错: {e}")
最后:
conn.close()

# 将评论数据保存到SQLite数据库的函数
DEF 保存到sqlite(数据、数据库文件名、表名):
作者信息=数据[“作者信息”]
评论=数据['注释']
尝试:
conn = sqlite3.connect(db_filename)

# 扁平化作者信息
flat_author_info = (author_info['用户名'],
作者信息[“用户个人资料 URL”],
作者信息['用户图片 URL'])

# 将作者数据插入 SQLite
插入_作者_sql = f'''插入 {表名} (
作者_用户名,
作者_个人资料_URL,
作者_图片_URL,
评论_内容,
评论者_用户名,
Commenter_Profile_URL
) 值 (?, ?, ?, ?, ?, ?)'''

评论 in 评论:
扁平评论 = (扁平作者信息[0], # 作者_用户名
平面作者信息[1], # 作者个人资料 URL
平面作者信息[2], # 作者_图片_URL
评论[‘评论内容’],
评论['评论者用户名'],
评论[“评论者个人资料 URL”])

conn.execute(insert_author_sql, flat_comment)

conn.commit()
打印(“数据已成功保存到 SQLite 数据库。”)
sqlite3.错误 as e:
打印(f“将数据保存到 SQLite 数据库时出错: {e}")
最后:
conn.close()

create_table_if_not_exists(db_filename, table_name):

该函数确保 SQLite 数据库中存在具有指定名称的表。它需要两个参数: db_filename、SQLite 数据库的文件名,以及 table_name,要创建或检查是否存在的表的名称。

函数内部:

  • 与 SQLite 数据库建立连接。
  • 如果表尚不存在,则执行 SQL 查询来创建该表。该表由作者信息(用户名、个人资料 URL 和图片 URL)和评论信息(内容、评论者用户名和评论者个人资料 URL)字段组成。
  • 如果在创建表的过程中发生错误,则会打印错误消息。
  • 最后,关闭与数据库的连接。

save_to_sqlite(data, db_filename, table_name):

此函数将评论数据与作者信息一起保存到 SQLite 数据库中。它需要三个参数: data,包含作者信息和评论的字典, db_filename、SQLite 数据库的文件名,以及 table_name,将保存数据的表的名称。

函数内部:

  • 作者信息和评论摘自 data 字典。
  • 作者信息被扁平化为一个元组 flat_author_info.
  • 对于每条评论,作者信息和评论数据被组合成一个元组 flat_comment.
  • 执行 SQL 查询以将数据插入 SQLite 表中。
  • 如果在数据插入期间发生错误,则会打印错误消息。
  • 最后,关闭与数据库的连接。

7. 带分页和保存的完整代码

现在,让我们扩展第 4 部分的完整代码示例,包括处理分页并将注释数据保存到 Excel 和 SQLite 数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 爬行基地 进口 抓取API
bs4 进口 美丽汤
进口 大熊猫 as pd
进口 sqlite3

# 初始化Crawlbase CrawlingAPI对象
爬行 API = 爬行 API({“令牌”: “CRAWLBASE_JS_TOKEN”})

DEF fetch_html_with_pagination_crawlbase(网址):
# ...(不变)

DEF scrape_video_author_info():
# ...(不变)

DEF scrape_comments_listing():
# ...(不变)

DEF scrape_comment_content(评论):
# ...(不变)

DEF scrape_commenter_details(评论):
# ...(不变)

DEF 保存到Excel(数据、文件名):
# ...(不变)

DEF 如果不存在则创建表(数据库文件名、表名):
# ...(不变)

DEF 保存到sqlite(数据、数据库文件名、表名):
# ...(不变)

DEF ():
抓取数据 = {}

# 获取 TikTok 视频页面的 HTML 内容
html_content = fetch_html_with_pagination_crawlbase(“https://www.tiktok.com/@khaby.lame/video/7255327059302419738”)

# 使用 BeautifulSoup 解析 HTML 内容
汤 = BeautifulSoup(html_content, “html.解析器”)

# 抓取视频作者信息
刮取的数据[“作者信息”] = scrape_video_author_info(汤)

# 抓取评论列表
comments_listing = scrape_comments_listing(汤)

# 迭代评论并抓取评论内容和评论者详细信息
评论列表 = []
评论 in 评论列表:
评论详细信息 = {}
comments_detail.update(scrape_comment_content(评论))
comments_detail.update(scrape_commenter_details(评论))
comments_list.append(comments_detail)

刮取的数据['注释'] = 评论列表

# 将评论数据保存到Excel和SQLite数据库
save_to_excel(抓取的数据, “tiktok_comments.xlsx”)
如果不存在则创建表(“tiktok_comments.db”, “评论”)
save_to_sqlite(scraped_data, “tiktok_comments.db”, “评论”)

if __名字__ == “__主要的__”:
主()

此扩展代码示例演示了如何在抓取 TikTok 评论时处理分页,并将抓取的评论数据保存到 Excel 和 SQLite 数据库以供进一步分析。

tiktok_comments.xlsx 文件 & comments 表快照:

输出文件快照

恭喜您使用 Crawlbase 抓取 API 和 Python 成功设置 TikTok 评论抓取工具!我希望本指南对抓取 TikTok 评论有用。

请探索我们精选的清单 TikTok 抓取工具 增强您的抓取能力:

📜 最佳 TikTok 抓取工具
📜 如何抓取 TikTok 搜索结果
📜 如何抓取 Facebook
📜 如何抓取 Linkedin
📜 如何抓取 Twitter
📜 如何抓取 Instagram
📜 如何抓取 YouTube

为了更进一步的 定制选项和高级功能,参考 Crawlbase 爬取 API 文档。如果您有任何问题或反馈,我们的 支持团队 随时为您的网络抓取之旅提供帮助。

8. 常见问题 (FAQ)

问:为什么要抓取 TikTok 评论?

抓取 TikTok 评论可以让用户从用户生成的内容中提取有价值的见解、趋势和情绪。通过分析评论,企业可以更好地了解受众的偏好、意见和反馈。研究人员还可以使用评论数据进行社会研究、情绪分析和趋势分析。

虽然从技术上来说,抓取 TikTok 评论违反了 TikTok 的服务条款,但网络抓取的合法性取决于多种因素,包括抓取目的、遵守数据保护法以及尊重网站服务条款。在从平台上删除评论之前,必须审查并遵守 TikTok 的服务条款和数据保护法规。

问:您可以从抓取 TikTok 评论中学到什么?

抓取 TikTok 评论可以提供有关用户参与度、情绪分析、内容趋势和受众人口统计的宝贵见解。通过分析评论数据,用户可以识别热门话题,评估受众对特定内容的反应,并了解用户对品牌、产品或服务的情绪。

问:抓取 TikTok 评论时如何处理动态内容?

在抓取 TikTok 评论时处理动态内容涉及使用无头浏览器或自动化工具等技术,在提取评论之前完全呈现页面。或者,用户可以利用 Crawlbase Crawling API 等 Web 抓取 API,它提供 JavaScript 渲染功能来准确抓取动态内容。这些方法确保在抓取过程中有效捕获所有评论,包括动态加载的评论。