CoderCastrov logo
CoderCastrov
Анализ данных

Парсинг комментариев на Facebook с использованием Python

Парсинг комментариев на Facebook с использованием Python
просмотров
3 мин чтение
#Анализ данных

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

Настройка среды

Для начала нам нужно установить необходимые библиотеки. Мы будем использовать библиотеку facebook_scraper, которая предоставляет удобный интерфейс для парсинга данных с Facebook. Кроме того, нам понадобится библиотека requests для обработки HTTP-запросов и pandas для манипулирования данными.

Вы можете установить эти библиотеки, запустив следующую команду:

pip install facebook_scraper requests pandas

Импорт необходимых библиотек

Давайте импортируем необходимые библиотеки и настроим наше окружение:

import facebook_scraper as fs
import requests
from http.cookiejar import CookieJar
import pandas as pd 

Настройка CookieJar

Для парсинга Facebook требуется аутентификация, и для аутентификации наших запросов нам необходимо предоставить необходимую информацию о сеансе в виде cookie. В этом руководстве мы будем использовать расширение браузера "EditThisCookie", популярное расширение браузера, чтобы экспортировать необходимые cookie из действующей сессии Facebook. Экспортируя cookie, мы можем создать объект CookieJar в Python и заполнить его необходимыми cookie для аутентификации. Это позволяет нам получать доступ и парсить данные Facebook без проблем.

# Создаем объект CookieJar
cookie_jar = CookieJar()
# Экспортированные cookie из расширения "EditThisCookie"
cookies = [
    # Вставьте сюда экспортированные cookie
]

# Преобразуем cookie в объект CookieJar
for cookie in cookies:
    c = requests.cookies.create_cookie(
        domain=cookie["domain"],
        name=cookie["name"],
        value=cookie["value"],
        path=cookie["path"],
        secure=cookie["secure"],
        expires=cookie.get("expirationDate"),
        rest={
            "HttpOnly": cookie["httpOnly"],
            "SameSite": cookie["sameSite"],
        },
    )
    cookie_jar.set_cookie(c)

Парсинг комментариев на Facebook

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

# Определите идентификатор поста
POST_ID = 779363630349936

# Определите максимальное количество комментариев для загрузки
MAX_COMMENTS = 100

# Получите пост (это дает генератор)
gen = fs.get_posts(
    post_urls=[POST_ID],
    options={"comments": MAX_COMMENTS, "progress": True},
    cookies=cookie_jar
)

# Получите первый элемент генератора, который является запрошенным постом
post = next(gen)

# Извлеките комментарии из поста
comments = post['comments_full']

В приведенном выше коде мы используем функцию get_posts из библиотеки facebook_scraper для получения нужного поста. Мы передаем идентификатор поста и указываем количество комментариев для загрузки, используя параметр options.

Сохранение комментариев

Для сохранения комментариев мы будем использовать pandas DataFrame. Давайте создадим пустой DataFrame с нужными названиями столбцов, а затем переберем комментарии, добавляя каждый комментарий в DataFrame. Вот код:

# Перебираем комментарии и добавляем их в DataFrame
for comment in comments:
    # Извлекаем информацию о комментарии
    comment_id = comment['comment_id']
    comment_text = comment['comment_text']

    # Создаем новую строку с информацией о комментарии
    new_row = {'comment_id': comment_id, 'comment_text': comment_text}

    # Добавляем новую строку в DataFrame
    commentdf = commentdf.append(new_row, ignore_index=True)

# Сохраняем полученный DataFrame в виде CSV-файла
commentdf.to_csv("t1_facebook_comment.csv", index=False)

В приведенном выше коде мы перебираем каждый комментарий в списке comments, полученном из поста. Мы извлекаем идентификатор комментария и текст комментария, а затем создаем новую строку с этой информацией. Затем мы добавляем новую строку в DataFrame commentdf с помощью метода append.

Наконец, мы сохраняем полученный DataFrame в виде CSV-файла с именем "t1_facebook_comment.csv" с помощью метода to_csv. Аргумент index=False гарантирует, что индекс строки не будет включен в CSV-файл.

Выполнив этот код, вы получите CSV-файл, содержащий идентификатор комментария и текст для дальнейшего анализа или сохранения.

Не стесняйтесь изменять код в соответствии с вашими требованиями, например, добавлять дополнительные шаги обработки или анализа данных.