В этом блоге мы научимся собирать комментарии TikTok. Если вам нужна подробная инструкция по скрейпинг TikTok данные, ознакомьтесь с нашим руководством по 'Как скрейпить TikTok.

В 2024 году у TikTok будет более 4 млрд загрузок во всем мире, что делает его одной из самых быстрорастущих социальных медиа-платформ в последнее время. Люди всех возрастов, от подростков до молодых людей и даже людей старшего возраста, используют его, что добавляет ему огромной популярности и влияния на культуру.

Статистика TikTok по возрасту и полу

Комментарии к видео TikTok дают представление о вовлеченности пользователей, настроениях, тенденциях и многом другом. Данные комментариев TikTok позволяют исследователям, маркетологам и энтузиастам данных углубляться во взаимодействие пользователей, определять трендовый контент и лучше понимать активное сообщество TikTok.

Итак, давайте начнем собирать комментарии TikTok Питон.

Содержание

  1. Основы скрапера комментариев TikTok
  2. Настройте среду Python и установите необходимые библиотеки
  3. Извлечь HTML-комментарии к видео TikTok
  4. Извлечь комментарии TikTok в формате JSON
  5. Обработка пагинации в комментариях TikTok Скрапинг
  6. Сохранение извлеченных данных комментариев TikTok
  7. Полный код с разбиением на страницы и сохранением
  8. Часто задаваемые вопросы (FAQ):

1. Основы сбора комментариев в TikTok

Для этого урока вам необходимо иметь базовые знания языка Python, HTML и CSS. Во-вторых, настройка Crawlbase Crawling API чтобы скрафтить комментарии из TikTok. Все, что вам нужно сделать, это Зарегистрироваться в Crawlbase и вы получите 1000 бесплатных запросов на сбор комментариев TikTok.

Направляйтесь к Документация по счету чтобы получить свой токен.

Документация по счету

В панели управления вы найдете два типа токенов. Обычный токен предназначен для обычных веб-сайтов, а токен JS — для веб-сайтов с большим количеством динамического или JavaScript-контента. Поскольку TikTok использует много JavaScript, мы будем использовать токен JS.

Теперь для настройки Python, убедитесь, что у вас установлен Python. Вы можете загрузить и установить Python с официального сайта Веб-сайт Python на основе вашей операционной системы. Кроме того, убедитесь, что у вас установлен pip, менеджер пакетов Python, для установки необходимых библиотек и зависимостей.

Теперь вы полностью готовы начать собирать комментарии к видео TikTok с помощью Python и Crawlbase Crawling API.

2. Настройте среду Python и установите необходимые библиотеки

Чтобы начать сбор комментариев к видео TikTok, выполните следующие действия по настройке среды проекта:

Установка Python: Если вы еще этого не сделали, загрузите и установите Python с официального сайта Python. Обязательно добавьте Python в PATH вашей системы во время установки. Вы можете проверить установку, открыв командную строку или терминал и выполнив следующую команду:

1
python --version

Если Python установлен правильно, вы увидите номер установленной версии.

Создать новую среду Python: Рекомендуется работать в виртуальной среде для управления зависимостями проекта. Создайте новую виртуальную среду, используя следующие команды:

1
2
3
4
5
6
7
8
# Создать новую виртуальную среду
python -m венв myenv

# Активировать виртуальную среду
# В Windows
myenv\Скрипты\активировать
# На macOS/Linux
источник myenv/bin/активировать

Установите необходимые библиотеки: Установите необходимые библиотеки Python для веб-скрапинга и извлечения данных. Ключевые библиотеки включают requests, beautifulsoup4 и crawlbase. Вы можете установить эти библиотеки с помощью pip, менеджера пакетов Python:

1
pip install запросы beautifulsoup4 crawlbase

Инициализировать файлы проекта: Создать новый файл скрипта Python tiktok_comments_scraper.py для вашего проекта по сбору комментариев TikTok. Вы можете использовать любой текстовый редактор или интегрированную среду разработки (IDE) по вашему выбору, чтобы написать свой код Python.

Настроив среду проекта и установив библиотеки, вы готовы начать собирать комментарии к видео TikTok. Давайте перейдем к следующему шагу.

3. Извлеките HTML-код комментариев к видео TikTok

Чтобы начать скрейпинг комментариев к видео TikTok, нам нужно получить HTML-контент страницы TikTok, где находятся комментарии. Для этого есть два распространенных подхода: использование стандартная библиотека HTTP-запросов " У аборигенов requests или используя Crawlbase Crawling API..

Извлечение HTML-кода комментариев TikTok с использованием общепринятого подхода

В общем подходе мы используем библиотеки Python, такие как requests для извлечения HTML-контента страницы видео TikTok. Вот простой пример того, как этого можно добиться:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Импортировать Запросы

# Функция для извлечения HTML с помощью запросов
защиту fetch_html(URL):
стараться:
ответ = запросы.get(url)
if ответ.status_code == 200:
возвращают ответ.текст
еще:
Распечатать(f"Не удалось получить HTML. Код статуса: {response.status_code}")
возвращают Ничто
кроме Исключение as e:
Распечатать(f"Произошла ошибка: {ул(е)}")
возвращают Ничто

# Пример использования
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-адресов: Непрерывный сбор данных с использованием традиционных методов может привести к ограничению скорости или блокировке IP-адресов на серверах TikTok, что приведет к ограничению доступа или временным запретам.

Чтобы преодолеть эти проблемы и обеспечить точный сбор комментариев к видео TikTok, можно использовать альтернативные методы, такие как использование безголовые браузеры or API динамического рендеринга может быть необходимо. Один из API там есть Crawlbase Crawling API.

Извлечение HTML с помощью Crawlbase Crawling API

Чтобы преодолеть ограничения общепринятого подхода и эффективно извлекать HTML-комментарии к видео TikTok, мы можем использовать Crawlbase Crawling API. Этот API позволяет нам извлекать визуализированный HTML-контент страниц TikTok, включая динамически загружаемый контент.

Вот как можно использовать Crawlbase Crawling API для получения HTML-комментариев к видео 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
от база сканирования Импортировать CrawlingAPI

# Инициализируем Crawlbase Объект CrawlingAPI
crawling_api = CrawlingAPI({"токен": "CRAWLBASE_JS_TOKEN"})

варианты = {
'ajax_wait': 'правда',
'page_wait': 10000,
"user_agent": «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»
}

# Функция для извлечения HTML с помощью Crawlbase Crawling API
защиту fetch_html_crawlbase(URL):
Глобальный crawling_api, параметры
стараться:
ответ = crawling_api.get(url, параметры)
if ответ["заголовки"]['статус_ПК'] == '200':
возвращают ответ['тело'].decode('utf-8')
еще:
Распечатать(f"Не удалось получить HTML. Crawlbase код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто
кроме Исключение as e:
Распечатать(f"Произошла ошибка: {ул(е)}")
возвращают Ничто

# Пример использования
tiktok_url = "https://www.tiktok.com/@khaby.lame/video/7255327059302419738"
html_content = fetch_html_crawlbase(tiktok_url)
if html_контент:
Распечатать(html_контент)

Посмотрите на график Crawlbase Crawling API позволяет нам эффективно извлекать HTML-контент страниц TikTok, гарантируя, что контент, отрендеренный JavaScript, будет точно захвачен. Этот подход особенно полезен для парсинга динамического контента, такого как комментарии к видео TikTok.

Crawling API Вывод HTML

4. Извлечение комментариев TikTok в формате JSON

Скрапинг комментариев TikTok включает в себя извлечение различных компонентов, таких как информация об авторе видео, список комментариев, содержание комментариев и данные комментатора. Давайте глубоко продиагностируем каждый шаг вместе с профессиональными и эффективными примерами кода.

Сбор информации об авторе видео

При извлечении комментариев со страницы видео крайне важно сохранять точные записи как о соответствующем видео, так и о его загрузчике для всестороннего анализа и атрибуции. Чтобы извлечь информацию об авторе видео со страницы видео TikTok, мы можем извлечь такие данные, как имя пользователя, URL-адрес профиля и изображение профиля.

HTML-элементы автора видео

Вот пример кода, демонстрирующий, как это сделать:

1
2
3
4
5
6
защиту scrape_видео_автор_информация(суп):
информация_автора = {}
информация_автора["Имя пользователя"] = суп.выберите_один("span[data-e2e='browse-username']").текст.полоска()
информация_автора[«URL-адрес профиля пользователя»] = суп.выберите_один("a[data-e2e='просмотр-аватара-пользователя']")[href]
информация_автора[«URL-адрес изображения пользователя»] = суп.выберите_один("a[data-e2e='browse-user-avatar'] img")["источник"]
возвращают информация_автора

Очистка списка комментариев

Чтобы извлечь список комментариев со страницы видео TikTok, мы можем извлечь HTML-элементы, содержащие комментарии.

Элементы HTML для списка комментариев

Вот пример кода, демонстрирующий, как это сделать:

1
2
3
защиту scrape_comments_listing(суп):
comments_listing = суп.выбрать("div[data-e2e='search-comment-container'] > div[class*='CommentListContainer'] > div[class*='DivCommentItemContainer']")
возвращают комментарии_список

Очистка содержимого комментариев

Чтобы извлечь содержимое каждого комментария, мы можем извлечь текстовое содержимое элементов комментария.

HTML-элемент содержимого комментария

Вот пример кода, демонстрирующий, как это сделать:

1
2
3
4
защиту scrape_comment_content(комментарий):
comment_content = {}
комментарий_контент[«Комментарий к содержанию»] = комментарий.выберите_один("div[class*='DivCommentContentContainer'] p[data-e2e='comment-level-1'] > span").текст.полоска()
возвращают комментарий_контент

Соскоб данных комментатора

Чтобы получить сведения о комментаторе, такие как имя пользователя и URL-адрес профиля, мы можем извлечь соответствующую информацию из элементов комментария.

Подробности комментатора HTML-элементы

Вот пример кода, демонстрирующий, как это сделать:

1
2
3
4
5
защиту scrape_commenter_details(комментарий):
commenter_details = {}
commenter_details[«Имя пользователя комментатора»] = комментарий.выберите_один("div[class*='DivCommentContentContainer'] span[data-e2e='comment-username-1']").текст.полоска()
commenter_details[«URL профиля комментатора»] = комментарий.выберите_один("div[class*='DivCommentContentContainer'] > a[data-e2e='comment-avatar-1']").получать(href)
возвращают commenter_details

Полный код

Теперь давайте объединим эти функции извлечения в полный пример кода, который извлекает информацию об авторе видео, список комментариев, содержание комментариев и сведения о комментаторе:

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
от база сканирования Импортировать CrawlingAPI
от bs4 Импортировать КрасивыйСуп
Импортировать JSON

# Инициализируем Crawlbase Объект CrawlingAPI
crawling_api = CrawlingAPI({"токен": "CRAWLBASE_JS_TOKEN"})

варианты = {
'ajax_wait': 'правда',
'page_wait': 10000,
"user_agent": «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»
}

# Функция для извлечения HTML с помощью Crawlbase Crawling API
защиту fetch_html_crawlbase(URL):
Глобальный crawling_api, параметры
стараться:
ответ = crawling_api.get(url, параметры)
if ответ["заголовки"]['статус_ПК'] == '200':
возвращают ответ['тело'].decode('utf-8')
еще:
Распечатать(f"Не удалось получить HTML. Crawlbase код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто
кроме Исключение as e:
Распечатать(f"Произошла ошибка: {ул(е)}")
возвращают Ничто

защиту scrape_видео_автор_информация(суп):
информация_автора = {}
информация_автора["Имя пользователя"] = суп.выберите_один("span[data-e2e='browse-username']").текст.полоска()
информация_автора[«URL-адрес профиля пользователя»] = суп.выберите_один("a[data-e2e='просмотр-аватара-пользователя']")[href]
информация_автора[«URL-адрес изображения пользователя»] = суп.выберите_один("a[data-e2e='browse-user-avatar'] img")["источник"]
возвращают информация_автора

защиту scrape_comments_listing(суп):
comments_listing = суп.выбрать("div[data-e2e='search-comment-container'] > div[class*='CommentListContainer'] > div[class*='DivCommentItemContainer']")
возвращают комментарии_список

защиту scrape_comment_content(комментарий):
comment_content = {}
комментарий_контент[«Комментарий к содержанию»] = комментарий.выберите_один("div[class*='DivCommentContentContainer'] p[data-e2e='comment-level-1'] > span").текст.полоска()
возвращают комментарий_контент

защиту scrape_commenter_details(комментарий):
commenter_details = {}
commenter_details[«Имя пользователя комментатора»] = комментарий.выберите_один("div[class*='DivCommentContentContainer'] span[data-e2e='comment-username-1']").текст.полоска()
commenter_details[«URL профиля комментатора»] = комментарий.выберите_один("div[class*='DivCommentContentContainer'] > a[data-e2e='comment-avatar-1']").получать(href)
возвращают commenter_details

защиту main():
очистил_данные = {}

# Извлечь HTML-контент страницы видео TikTok
html_content = fetch_html_crawlbase("https://www.tiktok.com/@khaby.lame/video/7255327059302419738")

# Анализ 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(подробности_комментариев)

скопированные_данные[«Комментарии»] = список_комментариев

# Распечатать полученные результаты
Распечатать(json.dumps(scraped_data, indent=2, sure_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
{
"Информация об авторе": {
"Имя пользователя": "хаби.хромой",
«URL-адрес профиля пользователя»: "https://www.tiktok.com/@khaby.lame",
«URL-адрес изображения пользователя»: "./Всегда доверяйте Роберту Дауни-младшему #oppenheimer #imax _ TikTok_files/6595ee956e2304779514b56c2f9cb666~c5_100x100.jpeg"
},
"Комментарии": [
{
«Контент комментария»: "это тот железный человек?",
«Имя пользователя комментатора»: "dezzzznuts",
«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 ети 🍓",
«URL профиля комментатора»: "https://www.tiktok.com/@leticiiamurilloo"
},
{
«Контент комментария»: "железный человек 😱",
«Имя пользователя комментатора»: "Рыбокоптер",
«URL профиля комментатора»: "https://www.tiktok.com/@hugobosskingman.cool88"
},
..... более
]
}

5. Обработка пагинации в комментариях TikTok.

TikTok часто использует бесконечную прокрутку для динамической загрузки большего количества комментариев. Для обработки пагинации мы можем использовать Crawlbase Crawling API scroll параметр. По умолчанию интервал прокрутки установлен на 10 секунд, но вы можете использовать scroll_interval параметр для его изменения. Вот пример того, как обрабатывать пагинацию с помощью Crawlbase Crawling API:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Функция для извлечения HTML-контента с прокруткой страниц
защиту fetch_html_with_pagination_crawlbase(URL):
Глобальный crawling_api

# Настраивать Crawlbase Параметры API для прокрутки страниц
варианты = {
'ajax_wait': 'правда',
'user_agent': «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 ответ["заголовки"]['статус_ПК'] == '200':
возвращают ответ['тело'].decode('utf-8')
еще:
Распечатать(f"Не удалось получить HTML. Crawlbase код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто
кроме Исключение as e:
Распечатать(f"Произошла ошибка: {ул(е)}")
возвращают Ничто

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
защиту сохранить_в_Excel(данные, имя файла):
информация_автора = данные[«Информация об авторе»]
комментарии = данные[«Комментарии»]

# Сгладить информацию об авторе
flat_author_info = {«Автор_Имя_Пользователя»: информация_автора['Имя пользователя'],
'URL_профиля_автора': информация_автора[«URL-адрес профиля пользователя»],
'URL_изображения_автора': информация_автора[«URL-адрес изображения пользователя»]}

# Сгладить комментарии
плоские_комментарии = [{«Комментарий_Контент»: комментарий[«Комментарий к содержанию»],
«Комментатор_Имя_пользователя»: комментарий[«Имя пользователя комментатора»],
'URL_профиля_комментатора': комментарий[«URL-адрес профиля комментатора»]} для комментарий in Комментарии]

# Создание фреймов данных
author_df = pd.DataFrame([flat_author_info])
comments_df = pd.DataFrame(flat_comments)

# Сохранить в Excel
pd.ExcelWriter(имя файла) as писатель:
author_df.to_excel(писатель, имя_листа=«Информация об авторе», индекс=Ложь)
comments_df.to_excel(writer, sheet_name=«Комментарии», индекс=Ложь)

Распечатать(«Данные успешно сохранены в файл Excel».)

save_to_excel(data, filename):

Эта функция сохраняет данные комментариев вместе с информацией об авторе в файл Excel. Она принимает два параметра: data, словарь, содержащий как информацию об авторе, так и комментарии, и filename, имя файла Excel, в который будут сохранены данные.

Внутри функции:

  • Информация об авторе и комментарии взяты из data Словарь.
  • Информация об авторе сведена в словарь flat_author_info.
  • Комментарии сведены в список словарей. flat_comments.
  • Создаются два DataFrames: один для информации об авторе (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

# Функция создания таблицы, если она не существует
защиту создать_таблицу_если_не_существует(имя_файла_базы_данных, имя_таблицы):
стараться:
conn = sqlite3.connect(имя_файла_базы_данных)
# Создать или добавить в таблицу SQLite
создать_таблицу_sql = f'''СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ {имя_таблицы} (
Автор_Имя пользователя ТЕКСТ,
Автор_Профиль_URL ТЕКСТ,
Автор_Изображение_URL ТЕКСТ,
Комментарий_Контент ТЕКСТ,
Комментатор_Имя пользователя ТЕКСТ,
Комментатор_Профиль_URL ТЕКСТ
)'''
conn.execute(create_table_sql)
конн.коммит()
кроме sqlite3.Ошибка as e:
Распечатать(f"Ошибка создания таблицы SQLite: {е}")
в конце концов:
conn.close ()

# Функция сохранения данных комментариев в базе данных SQLite
защиту сохранить_в_sqlite(данные, имя_файла_базы_данных, имя_таблицы):
информация_автора = данные[«Информация об авторе»]
комментарии = данные[«Комментарии»]
стараться:
conn = sqlite3.connect(имя_файла_базы_данных)

# Сгладить информацию об авторе
flat_author_info = (author_info['Имя пользователя'],
информация_автора[«URL-адрес профиля пользователя»],
информация_автора[«URL-адрес изображения пользователя»])

# Вставить данные об авторе в SQLite
вставить_автор_sql = f'''ВСТАВИТЬ В {имя_таблицы} (
Автор_Имя_пользователя,
URL-адрес_профиля_автора,
URL_изображения_автора,
Комментарий_Контент,
Комментатор_Имя пользователя,
Комментатор_Профиль_URL
) ЦЕННОСТИ (?, ?, ?, ?, ?, ?)'''

для комментарий in комментарии:
flat_comment = (flat_author_info[0], # Автор_Имя_пользователя
flat_author_info[1], # URL_профиля_автора
flat_author_info[2], # URL_изображения_автора
комментарий[«Комментарий к содержанию»],
комментарий[«Имя пользователя комментатора»],
комментарий[«URL-адрес профиля комментатора»])

conn.execute(insert_author_sql, flat_comment)

конн.коммит()
Распечатать(«Данные успешно сохранены в базе данных SQLite».)
кроме sqlite3.Ошибка as e:
Распечатать(f"Ошибка сохранения данных в базе данных SQLite: {е}")
в конце концов:
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
от база сканирования Импортировать CrawlingAPI
от bs4 Импортировать КрасивыйСуп
Импортировать панд as pd
Импортировать sqlite3

# Инициализируем Crawlbase Объект CrawlingAPI
crawling_api = CrawlingAPI({"токен": "CRAWLBASE_JS_TOKEN"})

защиту fetch_html_with_pagination_crawlbase(URL):
# ... (без изменений)

защиту scrape_видео_автор_информация(суп):
# ... (без изменений)

защиту scrape_comments_listing(суп):
# ... (без изменений)

защиту scrape_comment_content(комментарий):
# ... (без изменений)

защиту scrape_commenter_details(комментарий):
# ... (без изменений)

защиту сохранить_в_Excel(данные, имя файла):
# ... (без изменений)

защиту создать_таблицу_если_не_существует(имя_файла_базы_данных, имя_таблицы):
# ... (без изменений)

защиту сохранить_в_sqlite(данные, имя_файла_базы_данных, имя_таблицы):
# ... (без изменений)

защиту main():
очистил_данные = {}

# Извлечь HTML-контент страницы видео TikTok
html_content = fetch_html_with_pagination_crawlbase("https://www.tiktok.com/@khaby.lame/video/7255327059302419738")

# Анализ 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(подробности_комментариев)

скопированные_данные[«Комментарии»] = список_комментариев

# Сохранение данных комментариев в базе данных Excel и SQLite
сохранить_в_excel(вычищенные_данные, "tiktok_comments.xlsx")
создать_таблицу_если_не_существует("tiktok_comments.db", "Комментарии")
сохранить_в_sqlite(вычищенные_данные, "tiktok_comments.db", "Комментарии")

if __имя__ == "__основной__":
Основной ()

В этом расширенном примере кода показано, как обрабатывать пагинацию при извлечении комментариев TikTok и сохранять извлеченные данные комментариев в базах данных Excel и SQLite для дальнейшего анализа.

tiktok_comments.xlsx Файл & comments снимок таблицы:

Снимок выходных файлов

Поздравляем с успешной настройкой вашего инструмента для сбора комментариев TikTok с помощью Crawlbase Crawling API и Python! Надеюсь, это руководство было полезным для парсинга комментариев TikTok.

Изучите наш тщательно отобранный список TikTok-скребки для улучшения ваших возможностей по парсингу:

📜 Лучшие скребки TikTok
📜 Как извлечь результаты поиска TikTok
📜 Как очистить Facebook
📜 Как скрейпить Linkedin
📜 Как скопировать Twitter
📜 Как скопировать Instagram
📜 Как скопировать Youtube

Для дальнейшего Возможности настройки и расширенные функцииобратитесь к Crawlbase Crawling API документация. Если у вас есть какие-либо вопросы или пожелания, наш команда поддержки всегда готов помочь вам в вашем путешествии по веб-скрапингу.

8. Часто задаваемые вопросы (FAQ)

В. Зачем собирать комментарии в TikTok?

Извлечение комментариев TikTok позволяет пользователям извлекать ценную информацию, тенденции и настроения из пользовательского контента. Анализируя комментарии, компании могут лучше понять предпочтения, мнения и отзывы своей аудитории. Исследователи также могут использовать данные комментариев для социальных исследований, анализа настроений и тенденций.

Хотя сбор комментариев TikTok технически противоречит условиям обслуживания TikTok, законность сбора данных в Интернете зависит от различных факторов, включая цель сбора данных, соблюдение законов о защите данных и соблюдение условий обслуживания веб-сайта. Важно ознакомиться с условиями обслуживания и правилами защиты данных TikTok и соблюдать их, прежде чем собирать комментарии с платформы.

В. Чему можно научиться, изучая комментарии в TikTok?

Сбор комментариев TikTok может дать ценную информацию о вовлеченности пользователей, анализе настроений, тенденциях контента и демографии аудитории. Анализируя данные комментариев, пользователи могут определять популярные темы, оценивать реакцию аудитории на определенный контент и понимать настроения пользователей по отношению к брендам, продуктам или услугам.

В. Как обрабатывать динамический контент при сборе комментариев в TikTok?

Обработка динамического контента при извлечении комментариев TikTok подразумевает использование таких методов, как использование headless-браузеров или инструментов автоматизации для полного отображения страницы перед извлечением комментариев. В качестве альтернативы пользователи могут использовать API веб-скрапинга, такие как Crawlbase Crawling API, которые предоставляют возможности рендеринга JavaScript для точного скрапинга динамического контента. Эти методы гарантируют, что все комментарии, включая динамически загруженные, будут эффективно захвачены в процессе скрапинга.