Люди могут легко собирать и скрести информацию из различных источников, таких как Facebook, Reddit и Twitter. Скрапер - это специализированный инструмент, который точно и быстро извлекает данные с веб-страницы. API для скраппинга помогают скраперам избежать запрета на использование антискрейперских технологий, которые устанавливают веб-сайты. Однако использование API обходится дороже, чем использование прокси-инструмента, управляемого самостоятельно.
Пользовались ли вы Reddit? Если вы занимаетесь социальными исследованиями и проводите много времени в Интернете, то, скорее всего, вы слышали о Reddit. Reddit называет себя "первой страницей Интернета". Это онлайновый дискуссионный форум, где люди делятся контентом и новостями или комментируют чужие сообщения. Таким образом, это невероятный источник данных для интернет-маркетологов и социальных исследователей.
У Reddit есть API под названием Python Reddit API Wrapper, сокращенно PRAW, для сбора данных. В этом блоге я покажу вам, как скреативить Reddit с помощью Python. Но перед этим вам нужно знать, зачем вам нужно скрести Reddit.
Зачем вам нужно скрести Reddit?
Если говорить о дизайне Reddit, то он разбит на несколько сообществ, известных как "сабреддиты". В Интернете можно найти любой сабреддит по интересующей вас теме. Социальные исследователи проводят анализ, делают выводы и реализуют планы действий, когда извлекают обсуждения на Reddit по определенной теме.
Из Reddit можно извлечь множество данных, например:
Ссылки
Комментарии
Изображения
Список сабреддитов
Материалы для каждого сабреддита
Имена пользователей
Upvotes
Downvotes
Вы можете соскрести с Reddit любую информацию, имеющую отношение к вашему бизнесу, поскольку это необходимо для следующих целей:
Создание приложений для НЛП
Для отслеживания настроения клиентов
Чтобы быть в курсе тенденций рынка
Для исследования потребителей
Для мониторинга воздействия ваших маркетинговых кампаний
Например,
Модному бренду нужно отсканировать все тексты комментариев, заголовки, ссылки, изображения и подписи в модных сабреддитах:
Разработка правильной стратегии ценообразования
Определение цветовых тенденций
Выяснение болевых точек модниц с помощью различных брендов
Журналистам и новостникам приходится скрести авторские посты со ссылками на блоги, чтобы обучить алгоритмы машинного обучения для автоматического резюмирования текста.
Инвестиционным и торговым компаниям приходится просматривать сабреддиты, связанные с фондовым рынком, чтобы разработать план инвестирования, интерпретируя, какие акции обсуждаются.
Трудности при работе с Reddit
Для извлечения общедоступных данных с сайта Reddit используются веб-скреперы (компьютерные программы). Использование скреперов Reddit необходимо из-за ограничений, с которыми вы сталкиваетесь при использовании официального API Reddit. Однако если вы используете веб-скрепер, который не использует Reddit API для извлечения данных с Reddit, вы нарушите условия использования Reddit. Но это не означает, что веб-скраппинг незаконен.
Чтобы скраппинг прошел без проблем, вам придется обойти системы защиты от скраппинга, установленные Reddit. Наиболее распространенные методы защиты от скраппинга, используемые Reddit, следующие:
Отслеживание IP-адресов
Captchas
Вы можете решить проблему отслеживания IP-адресов с помощью прокси-серверов и ротации IP-адресов. С другой стороны, вы можете решить проблему капчи, используя решения для капчи, такие как 2Captcha.
Как скрести Reddit с помощью Python
Существует пять способов скрести Reddit, и они следующие:
Ручной скраппинг - это самый простой, но наименее эффективный метод с точки зрения скорости и стоимости. Однако он позволяет получить данные с высокой степенью согласованности.
Использование Reddit API - Чтобы скрапить Reddit с помощью Reddit API, вам понадобятся базовые навыки кодирования. Он предоставляет данные, но ограничивает количество сообщений в любой теме Reddit до 1000.
API сторонних разработчиков с сахарным напылением - это эффективный и масштабируемый подход, но он неэффективен с точки зрения затрат.
Инструменты для веб-скрапинга - эти инструменты масштабируемы и требуют лишь базового умения пользоваться мышью.
Пользовательские скрипты для скрапинга - они хорошо настраиваются и масштабируются, но требуют высокого уровня программирования.
Давайте посмотрим, как можно скрапировать Reddit с помощью Reddit API с помощью следующих шагов.
Создайте аккаунт Reddit API
Прежде чем двигаться дальше, вам необходимо создать учетную запись Reddit. Чтобы использовать PRAW, вы должны зарегистрироваться в Reddit API по этой ссылке.
Импорт пакетов и модулей
Сначала мы импортируем встроенные модули Pandas, например, datetime, и два сторонних модуля, PRAW и Pandas, как показано ниже:
Получение инстанций Reddit и сабреддитов
Получить доступ к данным Reddit можно с помощью Praw, что расшифровывается как Python Reddit API Wrapper. Сначала вам нужно подключиться к Reddit, вызвав функцию praw.Reddit и сохранив ее в переменной. После этого нужно передать функции следующие аргументы.
Теперь вы можете получить сабреддит по своему выбору. Итак, вызовите экземпляр .subreddit из reddit (переменная) и передайте имя сабреддита, к которому вы хотите получить доступ. Например, вы можете использовать сабреддит r/Nootropics.
Доступ к нитям
Каждый субреддит имеет пять различных способов организации тем, созданных участниками Reddit:
.новый
.hot
.противоречивый
позолоченный
.top
Вы можете захватить наиболее популярные темы:
Вы получите объект в виде списка, содержащий 100 лучших работ в r/Nootropics. Однако лимит запросов на Reddit составляет 1000, поэтому вы можете контролировать размер выборки, передав ограничение в .top as:
Разбор и загрузка данных
Вы можете скрести любые данные. Тем не менее, мы будем собирать нижеприведенную информацию о темах:
id
название
оценка
дата создания
основной текст
Для этого мы сохраним наши данные в словаре, а затем используем цикл for, как показано ниже.
Теперь мы можем получить данные из Reddit API. Мы добавим информацию в наш словарь, итерируя наш объект top_subreddit.
Теперь мы поместим наши данные в Pandas Dataframes, поскольку словари Python не так легко читать.
Экспорт CSV
В Pandas очень легко создавать файлы данных в различных форматах, поэтому мы используем следующие строки кода для экспорта наших данных в CSV-файл.
Лучшие прокси для Reddit в 2021 году
Вы знаете, что Reddit не слишком строгий сайт, когда дело доходит до ограничений на использование прокси. Но вас могут поймать и наказать, если вы автоматизируете свои действия на Reddit без использования прокси.
Итак, давайте рассмотрим некоторые из лучших прокси для Reddit, которые делятся на две категории:
Резидентные прокси - это IP-адреса, которые поставщик услуг Интернета (ISP) присваивает устройству, находящемуся в определенном физическом месте. Эти прокси показывают фактическое местоположение устройства, которое пользователь использует для входа на сайт.
Прокси дата-центра - это различные IP-адреса, которые не исходят от какого-либо интернет-провайдера. Мы получаем их от поставщика облачных услуг.
Ниже перечислены лучшие прокси-серверы для жилых домов и центров обработки данных для Reddit.
Smartproxy
Smartproxy - один из лучших прокси-провайдеров премиум-класса, так как он эффективен для автоматизации Reddit. Он имеет обширный IP-пул и предоставляет доступ ко всем IP, как только вы подписываетесь на его услуги.
Stormproxy
Цены и неограниченная пропускная способность Stormproxies делают их хорошим выбором. Они доступны и дешевы в использовании. У них есть прокси для различных случаев использования и лучшие прокси для жилых помещений для автоматизации Reddit.
ProxyScrape
ProxyScrape один из популярных прокси-сервисов, который специализируется на предоставлении прокси для скрапбукинга. Он также предлагает выделенные прокси для центров обработки данных наряду с общими прокси для центров обработки данных. У него есть более 40 тысяч прокси-центров, которые вы можете использовать для сбора данных с веб-сайтов в Интернете.
ProxyScrape Компания предоставляет своим пользователям три вида услуг, а именно..,
Highproxies работает с Reddit и имеет следующие категории прокси:
Общие прокси-серверы
Частные прокси-серверы
Прокси-серверы для классифицированных сайтов
Прокси-серверы для продажи билетов
Медиа-прокси
Instantproxies
Вы также можете использовать Instantproxies для автоматизации Reddit, поскольку они очень безопасны, надежны, быстры и имеют время безотказной работы около 99,9 %. Они являются самыми дешевыми из всех прокси, используемых в центрах обработки данных.
Зачем использовать прокси Reddit?
Прокси-серверы нужны, когда вы работаете с автоматическими инструментами на Reddit. Это связано с тем, что Reddit - очень чувствительный сайт, который легко обнаруживает автоматические действия и блокирует ваш IP от доступа к платформе. Поэтому, если вы автоматизируете некоторые задачи, такие как голосования, посты, вступление/невступление в группы и управление несколькими аккаунтами, вам определенно нужно использовать прокси-серверы, чтобы избежать плохих результатов.
Альтернативные решения для скрапа Reddit
Вы можете использовать ручной скраппинг, если ваши требования к скраппингу Reddit невелики. Но если требования велики, вам придется воспользоваться автоматизированными методологиями, такими как инструменты для веб-скрапинга и пользовательские скрипты. Веб-скреперы оказываются экономичными и эффективными с точки зрения затрат и ресурсов, если ваши ежедневные потребности в скрейпинге находятся в пределах нескольких миллионов сообщений.
Итак, давайте рассмотрим некоторые из лучших скреперов Reddit как лучшее решение для соскабливания больших объемов данных Reddit.
Scrapestrom
Scrapestorm - один из лучших инструментов для скрапбукинга, представленных на рынке, поскольку он отлично работает, когда речь идет о скрапбукинге Reddit. Он использует искусственный интеллект для автоматического определения ключевых точек данных на веб-странице.
Скребок для Reddit от Apify
Скрепер Reddit от Apify позволяет извлекать данные без использования API Reddit. Это означает, что вам не нужен API-токен разработчика и авторизация от Reddit, чтобы загрузить данные для коммерческого использования. Вы также можете оптимизировать работу скрепера, используя встроенный прокси-сервис платформы Apify.
Заключение
Мы обсудили пять способов соскребать данные Reddit, и самый простой из них - использовать Reddit API, поскольку он требует лишь базовых навыков кодирования. PRAW - это Python-обертка для Reddit API, которая позволяет использовать Reddit API с чистым Python-интерфейсом. Но если у вас большие потребности в скрапинге Reddit, вы можете извлекать общедоступные данные с сайта Reddit с помощью скраперов Reddit. Чтобы автоматизировать свои действия на сайте Reddit, вам необходимо использовать центр обработки данных или жилые прокси.