Какие есть способы парсить facebook?
Остались ли рабочие способы парсить данные с помощью python с facebook(списки подписчиков например)?
Какие то же сервисы есть, которые осуществляют это, значит по идее и способы тоже есть.
- Вопрос задан 15 мар. 2023
- 303 просмотра
4 комментария
Средний 4 комментария
Всё, что не входит в официально доступный функционал Graph API, работает крайне плохо.
Те самые «сервисы» тоже страдают от борьбы пейсбука с ними.
JoshGeorge @JoshGeorge Автор вопроса
shurshur, Selenium и beautifulsoup не как в этом не помогут?
JoshGeorge, beautifulsoup это парсер html-контента, который ещё надо как-то получить, и это как раз меньшая из проблем. Selenium про имитацию полноценного браузера, но чтоб его не обнаружили сразу надо напрячься (selenium stealth итп), а чтобы не обнаружили по излишней активности надо всякие прокси с незасвеченными айпишниками тысячами и лучше сразу за деньги — бесплатные работают плохо и тухнут быстро.
В общем, это в принципе очень больно и сложно. Лучше заняться чем-нибудь более осмысленным, полезным и продуктивным.

mayton2019 @mayton2019
Парсинг — это такая рисковая штука. Нет контракта. Нет гарантий что API не изменится завтра. Действительно лучше вложить свои силы в что-то более понятное.
Парсер facebook, 2 скрипта python
Нужны два python скрипта, для получения постов Facebook по «ключевой фразе и дате» и по «юзернейму» (последние xx постов).
В обоих случаях нужны одинаковые данные:
post_id (TEXT)
username (TEXT)
text (TEXT)
post_text (TEXT)
shared_text (TEXT)
time (DATETIME)
image (TEXT)
likes + остальные реакции (INT)
comments (INT)
shares (INT)
Результат нужно записать в нормализованную базу данных mysql, где есть:
1 основная таблица постов (с перечисленными выше полями)
2 таблица комментариев (оригинальный post_id + те же поля, что есть)
3 таблица поисковых запросов с полями (id запроса, post_id )
4 таблица запросов по юзерам (username, post_id )
разультат можно подогнать под функционал существующих скрейперов [+бесплатного api],
главное что бы можно было связать посты по поисковому запросу с постами из профилей юзеров по username/user_id.
Для быстрой связи, telegram: SergiiK
Обновление #1 от 24 ноября 2019, 0:40
Нужны два python скрипта, для получения постов Facebook по «ключевой фразе и дате» и по «юзернейму» (последние xx постов).
В обоих случаях нужны одинаковые данные:
post_id (TEXT)
username (TEXT)
text (TEXT)
post_text (TEXT)
shared_text (TEXT)
time (DATETIME)
image (TEXT)
likes + остальные реакции (INT)
comments (INT)
shares (INT)
Результат нужно записать в нормализованную базу данных mysql, где есть:
1 основная таблица постов (с перечисленными выше полями)
2 таблица комментариев (оригинальный post_id + те же поля, что есть)
3 таблица поисковых запросов с полями (id запроса, post_id )
4 таблица запросов по юзерам (username, post_id )
Результат можно подогнать под функционал существующих скрейперов [+бесплатного api],
главное что бы можно было связать посты по поисковому запросу с постами из профилей юзеров по username/user_id.
Парсинг FB: как получить аудиторию в 2022

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

Для чего тогда парсить пользователей из FB?
- Получение трафика через массовые подписки, лайки, добавления в друзья или приглашения в группы.
- Поиск групп по ключевому запросу. Это поможет увидеть пользователей, которым потенциально интересен ваш оффер.
- Анализ конкурентов: вы сможете посмотреть, с какой аудиторией работают ваши конкуренты, и настроить рекламную кампанию на неё.
Способы парсинга пользователей Facebook
Социальная сеть постоянно закрывает возможности для парсеров, поэтому способы сбора данных периодически перестают работать. Однако и сегодня есть несколько методов парсинга. Что можно выбрать?
Облачные сервисы. При использовании таких решений вся работа проходит на стороне сервиса, вам достаточно задать настройки и дождаться выполнения задачи. К таким сервисам можно, например, отнести Pepper.Ninja . Для Facebook он предлагает два инструмента: поиск групп по ключевому слову с парсингом их участников, а также сбор аудитории, лайкнувших определённую страницу. Однако из-за ограничений социальной сети итоговый список может составлять до 80% от реального числа аудитории группы.
Скачиваемое ПО. При использовании самостоятельных программ вам понадобится время (зависит от мощности вашего ПК и объёмов поставленных задач). Приведём в пример Datacol . Программа собирает данные пользователей, состоящих в одной группе с вашим аккаунтом. Поэтому перед парсингом стоит завести отдельный профиль и вступить во все интересующие вас группы. Из недостатков –– никакой защиты от бана по IP. Поэтому рекомендуется использовать ПО с прокси, VPN или антидетект-браузером.
Скрипты и утилиты. По сути, данный вариант предполагает самостоятельное написание небольшой программы, выполняющей задачу по парсингу. Это можно сделать, например, на языке Python, используя библиотеки beautiful soup, pyinstaller и selenium decoder. Вы создаёте небольшой скрипт, который потребует ввода логина и пароля от профиля FB и ссылки на сообщество. После этого скрипт автоматически переходит в список участников, проматывает страницу до конца и копирует нужные данные из кода страницы. Чтобы не писать самостоятельно, вы можете разместить задание на написание подобного скрипта на бирже фриланса.
Пример парсинга
Разберём пример сбора пользователей группы на примере Datacol. Даже в демо-режиме программа предоставляет первые 25 результатов парсинга. В собранной базе данных будут указаны: название группы, имя пользователя, ссылка на страницу. Кроме того, вы можете самостоятельно добавить или убрать собираемые данные.
- Скачайте и установите Datacol.
- Запустите VPN или прокси, войдите в свой профиль на FB и подпишитесь на интересующие вас группы.
- Запустите Datacol и выберите «social-parsers» в древе кампаний.

- В выпадающем списке выберите кампанию «facebook.com-members-of-group-by-list.par».
- В дереве быстрой настройки кликни 2 раза на «плагин». Откроется окно с настройками кампании.

- Укажите логин и пароль своего аккаунта FB, нажмите «Сохранить и выйти».
- В поле «Входные данные» вставьте ссылку на группу, на которую подписан ваш аккаунт.

- Нажмите «Запуск» и дождитесь окончания работы. Полученные данные можно выгрузить в форматах .csv, .txt, .xlsx.
Вывод
Парсить данные пользователей Facebook –– задача вполне реализуемая. В зависимости от нужной информации вы можете пользоваться как дешёвыми, так и дорогими решениями. При этом надо помнить, что социальная сеть выступает против парсинга, поэтому в обязательном порядке держите под рукой запас аккаунтов (если работаете вручную), а также не забывайте, что полученные данные не всегда будут точными.
Как работают алгоритмы магазинов прил, почему одни продукты оказывают в топе, а другие никак до него не доберутся? Виноваты ли в этом плохие отзывы или агрессивный дизайн, маленький бюджет на продвижение или плохо собранная семантика? Разбираемся в «дьявольских» деталях ASO-продвижения с ребятами из команды iRent!
Как спарсить подписчиков фейсбук питон
Цель: создать программу на Python для парсинга Facebook.
Ход работы:
Способ 1. Через API.
Шаг 1. Регистрация приложения на Facebook for Developers.
1. Регистрируемся на Facebook, как обычный пользователь.
2. Далее переходим на Facebook for Developers. Ссылка: https://developers.facebook.com/. Нажимаем на «Войти» и вводим свои данные:
3. После входа переходим в «Мои приложения».
4. Нажимаем на кнопку «Создать приложение».
5. Выбираем тип «Компания» и заполняем всю необходимую информацию. В конце нажимаем на кнопку «Создание приложения».
6. После создания приложение появится на основной панели. Переходим в само приложение. Слева в меню нам нужна вкладка «Настройки», нажимаем на «Основное». На странице находится основная информация о вашем приложении, однако нам нужно «Подтверждение личности». Нажимаем на кнопку «Начать подтверждение», там будет вариант «Подтвердить личность», при его выборе попадаем на следующую страницу:
7. Нажимаем на кнопку «Upload File», загружаем необходимый документ (в статьях выше можно почитать информацию о том, какие документы можно отправить, я отправляла загран. паспорт). После всего нажимаем на кнопку «Отправить».
8. Далее необходимо будет дождаться, пока вам подтвердят личность.
Шаг 2. Написание кода.
- Для доступа к Facebook есть хорошая библиотека на Python, которую можно скачать по ссылке: https://github.com/mobolic/facebook-sdk . Вам нужна папка «facebook», так же в папке «example» можно посмотреть примеры использования функций.
2. Для парсинга вам нужен токен, как раз для этого пригодится приложение, созданное на первом шаге. Переходим на сайт: https://developers.facebook.com/tools/explorer/
3. Теперь сама программа. Для тестирования я создала простой код, который представлен ниже. В access_token необходимо вписать данные с предыдущего шага.
posts = graph.get_connections(profile[‘id’], ‘posts’)
Внимание! Приведенный способ требует установки стандартных библиотек: hashlib, hmac, binascii, base64, requests, json, re, urllib.
Способ 2. С помощью Selenium.
Так как с API часто возникают ошибки из-за отсутствия прав у приложения, предлагаем вариант доступа к Facebook через Selenium. Selenium — это библиотека, которая имитирует действия человека, то есть она может получить доступ к Facebook не обращаясь к самим данным, а с помощью HTML разметки на странице.
Шаг 1. Установка Selenium.
1. Для установки Selenium на Python нам нужно только выполнить команду в командной строке компьютера.
pip install selenium
2. Для работы с браузерами нам нужны драйвера. Скачать их можно вот здесь: https://pypi.org/project/selenium/ .
3. Далее необходимо распаковать драйвер (при необходимости) и переместить папку в корневую директорию (например, в Program Files).
4. После этого нужно поместить эту директорию в переменной Path. На Windows для начала нужно открыть свойства компьютера.
5. Далее «Дополнительные параметры системы»
6. Далее вкладка «Дополнительно» и «Переменные среды».
7. Находим переменную Path и нажимаем «Изменить…». Создаем новый путь с драйвером и сохраняем.
Шаг 2. Написание кода.
1. Импортируем библиотеки. Нам понадобятся следующие библиотеки:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
from lxml import html
from googletrans import Translator
2. Далее необходимо открыть браузер.
3. Создаем две переменные: ваш логин и ваш пароль в Facebook.
4. Далее нам нужны поля для ввода и кнопка на странице входа.
XPATH можно получить перейдя в код на странице.
5. Получаем эти элементы и отправляем туда наши данные, после чего нажимаем на кнопку.
6. У меня просило сохранить пароль, поэтому я добавила нажатие на кнопку «ОК».
7. Находим элемент поисковой строки, нажимаем на него.
8. Вводим поисковые данные в строку (я парсила просто по именам, можно любую информацию).
9. Далее с помощью BeautifulSoup получаем ссылки и начинаем открывать их.
for a in soup.find_all(‘a’, href=True):
if a[‘href’] != “#” and a[‘href’].find(“search”) == -1 and a[‘href’].find(“refid=8”) == -1 and a[‘href’].find(“add_friend”) == -1:
В условии я отбираю именно страницы пользователей, за исключением ссылок на мой профиль.
10. Далее так же с помощью BeautifulSoup можно получать информацию со страниц, мне нужен был текст, поэтому в цикл я добавила следующие строки
tags = soup1.find_all([‘h2’, ‘p’])
Вывод.
Таким образом, мы получили доступы к профилям пользователей в Facebook.