Рубрики
Без рубрики

Соскабливание групп Facebook с помощью Python? Избегайте блокировки с помощью проксикрала

Скабливание Facebook может поначалу звучать легко, но я несколько раз пробовал ползание и соскребая различия … С тегом WebScraping, Facebook, API, Python.

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

Существуют способы решить или избежать такого препятствия при соскобке, например, решение каптхов вручную или даже установление таймера на вашем сценарии, чтобы очистить медленнее. Еще один способ обойти это – переключать ваш IP каждые пару минут, которые можно делать с помощью прокси -серверов или VPN, но для этого требуется значительно больше времени и усилий.

К счастью, я нашел идеальное решение, которое может решить большинство проблем, с которыми мы обычно сталкиваемся при скребке. Его также можно легко использовать и интегрироваться в любой из ваших проектов по цене. Proxycrawl Предлагает API, который позволит вам легко очистить Интернет и защищает ваш веб -гусениц от заблокированных запросов, сбоя прокси, утечки IP, сбоев браузера и многого другого. Они предоставляют один из лучших API, который может использоваться всеми, будь то для небольших или крупных проектов.

Начиная

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

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

Прежде чем мы начнем, давайте получим список вещей, которые мы будем использовать для этого проекта:

Простой вызов API

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

Во -первых, важно знать, что каждый запрос на API Proxycrawl начинается со следующей базовой части:

https://api.proxycrawl.com

Вам также понадобится токен аутентификации для каждого запроса. Proxycrawl предоставит два вида токена при регистрации. Нормальный токен для общих запросов и токен JavaScript, который действует как настоящий браузер.

В этом случае мы будем использовать токен JavaScript, так как нам понадобится страница, отображаемая через JavaScript, чтобы правильно очистить группы Facebook. Токен может быть вставлен по нашему запросу, как показано ниже:

https://api.proxycrawl.com/?token=USER_TOKEN

Чтобы сделать звонок API, вам просто нужно добавить URL (кодированный), который вы хотите ползти, как приведенный пример ниже:

https://api.proxycrawl.com/?token=JS_TOKEN&url=https%3A%2F%2Fwww.facebook.com%2FBreakingNews

Эта простая строка поручит API принести полный исходный код HTML любого веб -сайта, который вы пытаетесь ползти. Вы можете сделать этот запрос API с помощью Curl на вашем терминале или просто открыть браузер и вставить его в адресную строку.

Теперь, когда я объяснил самые основные основы для вызова API, мы можем затем попытаться использовать эти знания, чтобы очистить группы Facebook.

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

Используя их скребок данных, мы можем легко получить следующую информацию о большинстве групп Facebook:

Тип заголовка членов Ученика URL -адреса Описание, включая имя пользователя, текст, ссылка, likeScount, Комментарии CommentsCount, включая имя пользователя и текст

Чтобы получить всю информацию, упомянутую выше, нам просто нужно передать два параметра. Группа рядом с параметром. Использование их вернет результат в формате JSON.

https://api.proxycrawl.com/?token=JS_TOKEN&url=https%3A%2F%2Fwww.facebook.com%2Fgroups%2F198722650913932&scraper=facebook-group&scroll=true

Пример вывода:

Соскоб с питоном

Proxycrawl собрал коллекцию связанных фрагментов кода, которые мы можем использовать для написания нашего простого вызова API в Python, и любой может свободно использовать его. Приведенный ниже пример – как мы можем использовать их библиотеку Python в этом проекте.

Во -первых, обязательно загрузите и установите Proxycrawl API Python Class . Вы можете загрузить его из GitHub или использовать диспетчер пакетов PYPI Python. PIP установить проксикрал

from proxycrawl.proxycrawl_api import ProxyCrawlAPI

api = ProxyCrawlAPI({'token': 'YOUR_TOKEN'})

response = api.get('https://www.facebook.com/groups/381067052051677',
                   {'scraper': 'facebook-group', 'scroll':'true'})

if response['status_code'] == 200:
    print(response['body'])

Примечание в этом случае нам не нужно кодировать URL -адрес, так как библиотека уже кодирует его.

С этого момента использование других параметров будет таким же простым, как добавить другую опцию к запросу GET.

Давайте используем Scroll_Interval в этом следующем примере. Этот параметр позволит нашему скребку прокручивать установленную интервал времени, который взамен предоставит нам больше данных, как если бы мы прокручиваем страницу в реальном браузере. Например, если мы установим его на 20, то он поручит браузеру прокрутить в течение 20 секунд после загрузки страницы. Мы можем установить его максимум 60 секунд, после чего API захватывает данные и возвращает их к нам.

from proxycrawl.proxycrawl_api import ProxyCrawlAPI

api = ProxyCrawlAPI({'token': 'YOUR_TOKEN'})

response = api.get('https://www.facebook.com/groups/381067052051677',
                   {'scraper': 'facebook-group', 'scroll': 'true', 'scroll_interval': 20})

if response['status_code'] == 200:
    print(response['body'])

Как вы могли заметить с кодом, мы получим ответ или код состояния каждый раз, когда отправляем запрос на проксикрал. Запрос является успешным, если мы получим 200 для PC_STATUS и Original_status. В некоторых случаях запрос может потерпеть неудачу, который будет иметь другой код статуса, например, 503, например. Тем не менее, проксикрал не взимает плату за такие случаи, поэтому, если запросы по какой -то причине не удались, вы можете просто повторно повторить звонок.

Пример вывода ниже показывает успешно скрещенную публичную группу в Facebook.

Вывод

Там у тебя это есть. Соскабливание контента Facebook всего за несколько строк кода. На данный момент Proxycrawl предлагает только скребок для групп, но вы можете использовать API ползания, если хотите ползти на другие страницы.

Помните, что вы можете использовать любой язык программирования, с которым вы знакомы, и это может быть интегрировано в любую из ваших существующих систем. API Proxycrawl является стабильным и достаточно надежным, чтобы он мог служить основой для любого вашего приложения. Они также предлагают большую поддержку для всех своих продуктов, поэтому я рад, что использует их услуги.

Я надеюсь, что вы узнали что -то новое в этой статье. Не забудьте зарегистрироваться в Proxycrawl Чтобы получить свой токен, если вы хотите проверить это на своем конце. Первые 2000 запросов бесплатны, просто обязательно используйте ссылки, найденные в этом руководстве.:)

Оригинал: “https://dev.to/iankalvin/scraping-facebook-groups-using-python-avoid-getting-blocked-with-proxycrawl-456a”