Парсинг — всё по этой теме для программистов


Оглавление (нажмите, чтобы открыть):

Парсинг от А до Я

Блог о программировании парсеров и web-автоматизации

Поиск по блогу

понедельник, 6 июля 2009 г.

Парсинг для начинающих. Практическая работа. Часть I

До начала второй части отпуска осталось 4 дня. Использую это время с пользой — напишу статью на блог. 🙂

Итак, долой теорию, переходим к практике парсинга. Соберем с какого-нибудь сайта структурированную информацию. Исходя из того, что для примера структура должна быть простой, я выбрала обредший небывалую популярность во время кризиса сайт по поиску работы hh.ru. Еще мой выбор обоснован тем, что с этим сайтом я довольно-таки давно и тесно «работаю» :D. Парсить в этот раз мы будем не вакансии, а информацию о предприятиях.

По ссылке http://hh.ru/employersList.do можно увидеть список компаний, имеющих на данный момент открытые вакансии. Отметив чекбокс «Показать компании, у которых нет открытых вакансий» и нажав на кнопку «Найти» получаем список всех предприятий (на момент написания статьи — 76 101). База немаленькая. Если парсить в один поток и делать перерыв между загрузками 2 секунды, то процесс займет около двух суток.

Рассмотрим структуру выдачи. Get-запрос будет следующим:

[PageNum] — номер страницы. Нумерация начинается с нуля.

Необходимая нам информация о предприятии:
— название;
— ссылка на сайт;
— описание предприятия;
— ссылка на источник информации.

Последний пункт — URL страницы, с которой берется информация (ссылка вида http://hh.ru/employer/[ID] ). Мы будем парсить постранично список с предприятиями, потом заходить по каждой ссылке и брать подробную информацию. «Почему такой способ, а не перебор всех ID по порядку в ссылке http://hh.ru/employer/[ID]?» — спросите вы. Отвечу: «Да потому, что это менее затратно». Идентификаторов гораздо больше, чем «действующих» ссылок (например, наберите http://hh.ru/employer/4 — увидите своими глазами, что предприятия с таким ID не существует).

Итак, алгоритм:
1) скачиваем первую страницу списка фирм;
2) находим все ссылки на предприятия;
3) если ссылки есть — заходим по каждой ссылке и получаем детальную информацию, записываем; если ссылок нет — заканчиваем работу;
4) загружаем следующую по счету страницу;
5) повторяем пункты 2 — 4.

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

Как находить ссылки на предприятия? Способов тоже несколько:
1) в содержимом страницы по регулярному выражению;
2) просмотреть весь массив ссылок, найденный через DOM, и отобрать ссылки, начинающиеся с «/employer/».

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

Для компаний я создала класс TCompany:

TCompanies — класс для работы со списком предприятий.

Интерфейс получился такой:

Чтобы быть в курсе обновлений блога, можно подписаться на RSS.

12 лучших инструментов и программного обеспечения для парсинга сайтов и мониторинга цен

Если и есть что-то, что я узнала о создании контента за последний год, так это то, что независимо от качества моего контента, без стратегического продвижения и маркетинга он не принесет пользы никому, будь то читатели или компания, в которой я работаю. Хотя я рассчитываю на продвижение в социальных сетях и на веб-сайте компании, все-таки если мой блог или whitepaper (англ. – мини-книга о решении определенной проблемы. Например, в ней может быть описана новая концепция или процесс выполнения технических задач ) достигнет высококвалифицированного списка читателей, которые найдут контент действительно полезным, вы не сможете найти более благодарного писателя, чем я! Итак, как я собираюсь построить этот список для каждого контента, который я создаю? Интернет — это огромный рудник мыслей и интересов, выраженных различными людьми, и сбор данных из этого богатства информации может помочь мне определить правильную аудиторию — процесс, известный как парсинг.

Конечно, я могла бы передать всю работу по парсингу на аутсорсинг в специальную сервисную компанию, но мой инстинкт программиста и исследователя новых инструментов, культивируемый в течение 3 лет работы в качестве “кибертехника” в ведущей компании по разработке ПО, взял верх надо мной. И я решила окунуться с головой во все тонкости парсинга, и количество вариантов, которые я обнаружила, слегка сбило меня с толку. Изучив сферу парсинга, я классифицировала все доступные варианты, которые мне удалось найти, и уникальные особенности популярных инструментов, найденных на рынке, которые обращаются к различным сегментам аудитории.

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

Итак, сначала выберите правильный подход к парсингу

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

  • Создание собственного поискового робота с нуля

Вариант для подкованных в коде людей, которые любят экспериментировать с макетами сайтов и решать проблемы блокировки, а также хорошо разбираются в разных языках программирования, таких как Python, R или Perl. Так же, как и решая свои повседневные задачи посредством программирования для любого научного проекта по data science, студент или исследователь может легко построить свое решение для парсинга с открытыми исходными кодами — такими, как Scrapy на основе Python или пакет rvest, RCrawler в R.

  • Инструменты парсинга, предназначенные для разработчиков

Инструменты парсинга подходят для разработчиков, в основном, там, где они могут создавать пользовательские парсеры с визуальной логикой программирования. Эти инструменты можно приравнять к среде IDE Eclipse для приложений Java EE. Положения для поворота IPs, агентов хоста и данных синтаксического анализа доступны в этом диапазоне для персонализации.

  • “Сделай сам” — инструменты парсинга для не программистов

Для тех, кто не считает себя “технарем” и в коде не разбирается, есть куча визуальных инструментов типа “выбери и кликни”, которые помогут создать список продаж или заполнить информацию о продукте для вашего каталога с помощью сценариев zero manual (без ручной работы) .

  • Аутсорсинг всего проекта парсинга

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

[su_box title=”Вам нужен парсинг и вы не программист?” style=”default” box_color=”#085fc8″]

Бесплатно регистрируйтесь на нашем портале https://ru.xmldatafeed.com и используйте ежедневные итоги парсинга крупнейших сайтов России (товары и услуги)! Все данные уже в формате Excel!

“Сделай сам” — инструменты парсинга для не программистов, настраиваемые по принципу “выбери и кликни”

Import.io

Настоящий титан в категории инструментов “Сделай сам”, import.io дает шанс каждому, кому необходимо извлечь какую-либо информацию из веб-данных с очень удобным, интуитивно понятным и интерактивным интерфейсом. Облачная платформа может структурировать данные, найденные за изображениями, экраном входа в систему и сотнями веб-страниц — полностью без программирования. Мониторинг изменений веб-сайта и возможность интеграции с рядом инструментов отчетности и приложений делают его отличным вариантом для предприятий с насущной необходимостью в парсинге.

  1. Простой и легкий пользовательский интерфейс, который хорошо работает для не программистов, желающих построить свой список потенциальных клиентов или отслеживать изменения цен.
  2. Это вполне адекватный вариант парсинга на нормальной скорости при сборе данных с разных веб-сайтов одновременно.

Если на данном этапе все выглядит классно, то осталось упомянуть всего лишь один минус, который может помешать вам попробовать этот инструмент, — это его цена. Несмотря на то что раньше у них была бесплатная пробная версия, теперь она больше не доступна (а базовый план начинается с $299/месяц). Так что вы извлекаете данные с сайтов, а программа извлекает деньги из вашего кармана.

Dexi.io

Ранее известный как CloudScrape, а ныне Dexi.io — еще один потрясающий визуальный инструмент для автоматизации сбора данных, предназначенный для коммерческого использования, надежное и безпроблемное приложение для браузера. Dexi предоставляет возможность для создания роботов, которые могут работать как экстрактор или поисковый робот или выполнять задачи по очистке ETL-данных после извлечения в форме Dexi Pipes. Этот мощный инструмент парсинга решает проблемы разбиения на страницы, выполняет извлечение в цикле и делает скриншоты веб-страниц. Он выдает свои предложения по выбору данных на веб-странице для “умного” извлечения содержимого .

  1. Здесь нет жестких процедур настройки, которым вы должны строго следовать. Зарегистрируйтесь, и приложение браузера откроется для вас, чтобы создать своего робота. Их потрясающая команда поддержки поможет вам с созданием бота в случае, если вы попали в засаду.
  2. Для коммерческого использования есть стандартный тарифный план по цене $119/месяц (для небольших проектов), который выглядит вполне приемлемым, а также профи-тариф, который подойдет для более крупных бизнес-проектов.
  1. Концепция дополнений в Dexi.io, хотя и выглядит поначалу симпатичной, потом все-таки оказывается не такой классной. Так как дополнений становится все больше и больше, и цены на них тоже растут.
  2. Некоторые пользователи ворчат и высказывают недовольство по поводу документации продукта, которую я надеюсь, ребята из Dexi скоро исправят.

Octoparse

Синий осьминог обещает принести вам все данные “на блюдечке с голубой каемочкой” безо всякого программирования вовсе, и надо сказать, он действительно это может! В течение всего 2 лет после запуска Octoparse прошел через 7 версий сервиса, доводя до ума свой рабочий процесс по обратной связи, полученной от пользователей. Он имеет интуитивно понятный интерфейс “выбери-и-кликни”, который поддерживает бесконечную прокрутку, аутентификацию входа, многоформатный экспорт данных и неограниченное количество страниц на заход на своем бесплатном тарифе (да, вам не послышалось!).

  1. Предусмотренные функции парсинга и работа с неограниченным списком веб-страниц за один заход делают его идеальным выбором для сценариев мониторинга цен.
  2. Функций, предусмотренных в их бесплатном плане более чем достаточно, если вы ищете эффективное одноразовое, готовое решение с хорошей документацией руководства пользователя. Кроме того, точное извлечение данных может быть достигнуто с помощью встроенных инструментов XPath и Regex.
  1. Octoparse еще только предстоит добавить функции извлечения pdf-данных и извлечения данных по изображениям (пока извлекается только URL-адрес изображения), поэтому называть его полноценным инструментом парсинга было бы несколько преждевременным.
  2. Поддержка клиентов “не огонь”, на быстрые ответы можно не рассчитывать.

ParseHub

Десктоп-приложение, которое предлагает графический интерфейс для выбора и извлечения данных по вашему выбору из Javascript и AJAX страниц, также поддерживается Windows, Mac OS X и Linux. ParseHub также может просматривать вложенные комментарии, карты, изображения, календари и всплывающие окна. А еще у него есть расширение на основе браузера, чтобы мгновенно запустить ваш парсинг, и тьюториалы, которые там есть, очень хорошо помогают.

  1. ParseHub имеет богатый пользовательский интерфейс и извлекает данные из многих сложных областей веб-сайта, в отличие от других программ.
  2. Разработчики могут попробовать RestfulAPI от ParseHub, который предоставляет удобный доступ к данным по завершении парсинга.
  1. Предполагаемый бесплатный план от ParseHub выглядит несколько жалким, ограничивая количество пройденных страниц до 200 и количество проектов — всего до 5. Кроме того, их платные версии начинаются со вполне ощутимых $149 в месяц, и все это выглядят как провальный вариант, особенно для одноразовых проектов.
  2. Скорость, с которой выполняется парсинг, должна быть значительно улучшена, потому что в текущем формате парсинг большого объема данных выполняется слишком медленно.

OutwitHub

Outwit technologies предлагает простой, без выпендрежа графический интерфейс, который изначально поставлялся в качестве дополнения Firefox (устаревшая версия все еще доступна, но без обновлений функций), а теперь и в виде свободно загружаемого ПО, которое можно обновить до Light и Pro версий. Без каких-либо навыков программирования при помощи Outwit Hub можно извлекать и экспортировать ссылки, адреса электронной почты, новости RSS и таблицы данных в базы данных CSV, HTML, Excel или SQL. Их другие продукты, такие как Outwit Images и Documents, извлекают изображения и документы с веб-сайтов на ваши локальные диски.

  1. Это вполне гибкий и мощный вариант для людей, которым нужны контакты источников и он доступен по цене, начинающейся с $69 для основной одноразовой покупки автономного приложения.
  2. Функция “Fast Scrape” (быстрый парсинг) — это приятное дополнение для быстрого удаления данных из списка URL-адресов, которые вы передали Outwit .
  1. Пригодность Outwit для повторяющихся широкомасштабных проектов по парсингу сомнительна, и их документация с обучающими материалами определенно нуждаются в развитии.
  2. Продукту не хватает удобного интерфейса “выбери-и-кликни”, поэтому пользователям в первый раз может потребоваться изучить обучающие видео на Youtube перед тем, как реализовывать свой проект по парсингу.

FMiner

ПО для визуального парсинга с макрокомпонентом дизайна для разработки блок-схемы парсинг-проекта путем визуального сопоставления со структурой сайта на том же экране . Инструмент на основе Python можно запускать как на Windows, так и на Mac OS с хорошей поддержкой Regex . FMiner имеет расширенные функции извлечения данных, такие как решение captcha, опции очистки данных после извлечения, а также позволяет вставлять код python для запуска задач на целевых веб-сайтах.

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

  1. Визуальный интерфейс не очень привлекателен, и необходимо приложить усилия для создания надлежащего рабочего процесса очистки (вспоминая о блок-схемах и соединителях). Вы должны знать свой путь вокруг определения элементов данных с помощью выражений XPath.
  2. После 15-дневной пробной версии вы вынуждены приобрести по крайней мере базовую версию программного обеспечения по цене $168 без планирования, емейл-отчетов или поддержки JS. Кстати, насколько активно они обновляют свой продукт? Не уверена, ибо не слышно новостей о каких-либо свежих улучшениях в FMiner.

Далее мы рассмотрим инструменты парсинга для разработчиков.

Инструменты парсинга для разработчиков

80Legs

Этот продукт размещен в облаке и такие популярные проблемы парсинга как ограничение скорости и вращение между несколькими IP-адресами тут не оставили без внимания (все в бесплатной версии!), так что 80Legs — это чудо парсинга! Загрузите список URL-адресов, установите ограничения обхода, выберите одно из встроенных приложений из обширного каталога от 80Legs, и полный вперед. Примером приложения от 80Legs будет “Ключевое слово”, которое подсчитывает количество раз, когда поисковый запрос появляется во всех перечисленных URL-адресах по отдельности. Пользователи могут создавать свои собственные приложения и код, которые могут быть помещены в 80Legs, что делает инструмент более настраиваемым и мощным.

О! И недавно они запустили новую версию своего портала. Загляните.

  1. Неограниченное количество запусков в месяц; один запуск за раз обрабатывает до 10000 URL-адресов прямо в бесплатной версии. Так что можете себе представить, платные тарифы 80Legs еще более привлекательны!
  2. Приложения, перечисленные в 80Legs, дают пользователям возможность анализировать извлеченный веб-контент и позволяют пользоваться этим инструментом даже специалистам с ограниченными познаниями в коде.
  1. Хотя поддержка огромных краулеров веб-страниц и заявлена, нет никаких базовых вариантов обработки данных, которые были бы необходимы при таких крупномасштабных проектах.
  2. Расширенные функции краулера, которые могут заинтересовать кодеров, в платформе 80Legs не обнаружены, и их команда поддержки также реагирует довольно медленно.

Content Grabber

Хотя рекламируется как визуальный инструмент парсинга для не программистов, полный потенциал этого инструмента может быть использован как раз людьми с отличными навыками программирования, которые позволят им провести эффективный сбор данных. Шаблоны сценариев, предназначенные для захвата, нужны для настройки ваших парсеров, и вы можете добавить свои собственные строки кода C# или Visual Basic. Agent Explorer и XPath Editor предоставляют опции для группировки нескольких команд и редактирования XPath по мере необходимости.

  1. Разработчики могут отлаживать скрипты очистки, регистрировать и обрабатывать ошибки с помощью встроенной поддержки команд.
  2. Крупные компании, ищущие инфраструктуру для сбора данных, могут попросту начать молиться на Content Grabber за его надежный и очень гибкий интерфейс парсинга, что стало возможным благодаря многим расширенным функциям, найденным в инструменте.
  1. Программное обеспечение доступно только для Windows и Linux, пользователям Mac OS рекомендуется запускать программное обеспечение в виртуальной среде.
  2. Цена установлена в $995 за одноразовую покупку программного обеспечения, которое ставит его вне досягаемости для скромных и небольших проектов по сбору данных.

Mozenda

Mozenda, предназначенная в основном для коммерческих предприятий и крупных организаций, позволяет создавать поисковые роботы, которые могут быть размещены на собственных серверах Mozenda или работать в вашей системе. Согласна, что у нее есть хороший пользовательский интерфейс, чтобы просто следовать алгоритму “выбери и кликни”, но для разработки поискового робота вам все равно нужно потратить время на обучающие материалы и часто обращаться за помощью их техподдержки. Поэтому классифицировать ее как инструмент DIY для не-технарей будет несправедливо. Этот надежный инструмент понимает списки и сложные макеты веб-сайтов наряду с совместимостью XPath.

  1. Роботы Mozenda собирают данные в довольно быстром темпе для запланированного и параллельного парсинга и поддерживают различные макеты сайтов.
  2. Вы можете извлечь данные в файлах Excel, Word, PDF и объединить их с данными, полученными из интернета с помощью Mozenda.

Исключительно приложение для Windows по неумеренно высокой цене в $300/месяц, и это за 2 одновременных запуска и 10 роботов.

Connotate

Connotate — это платформа для извлечения данных, созданная исключительно для нужд бизнеса. Хотя там есть интерфейс для сбора данных методом “выбери-и-кликни”, все же пользовательский интерфейс и цены явно не предназначены для людей с запросами “на разок”. Работа со схемами и поддержание поисковых роботов требует обученных пользователей, и если ваша компания ищет способы сбора информации с тысяч URL-адресов, то Connotate — это хороший вариант.

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

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

Apify

Apify, как указано в названии, является веб-платформой для программистов, которые хотят превратить веб-сайты в API. Cron-подобное планирование заданий и расширенные функции поискового робота, которые поддерживают обработку больших веб-сайтов, поддерживаются в Apify. У них есть варианты на разный вкус, как для самостоятельных разработчиков, так и для предприятий, чтобы развивать и поддерживать свои API.

  1. Apify может похвастаться живым форумом и поддержкой сообщества, которые позволяют разработчикам повторно использовать исходные коды, размещенные на GitHub, а также он имеет открытую библиотеку конкретных инструментов очистки, таких как SEO audit tool, email extractor и т. Д.
  2. API интегрируется с огромным количеством приложений и может обрабатывать сложные вопросы разбиения на страницы и макета сайта.

Как бы легко это ни было для разработчиков — написать всего лишь несколько строк Javascript, обработка ротации IP и прокси будет их основной задачей, которая осталась без внимания непосредственно в Apify.

Diffbot

Это другой инструмент сбора данных, также использующий API-доступ к данным, который включает методы ML и NLP для идентификации и сортировки веб-контента. Разработчики могут создавать собственные API для анализа контента в блогах, обзорах и на страницах событий. Diffbot расширяет библиотеку этих API, что позволяет легко выбрать и интегрировать API по вашему выбору.

Мастер Йода рекомендует:  Набор в школу IT-менеджеров

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

Понимание документов на уровне человека еще не внедрено, и Diffbot также находится в ряду дорогостоящих инструментов парсинга.

Diggernaut

“Превратите содержимое веб-сайта в набор данных”, так звучит утверждение на главной странице Diggernaut, дополненное фразой “не требуется навыков программирования”. Но облачный инструмент извлечения, который поставляется как расширение Chrome и как автономное настольное приложение, имеет функцию мета-языка, которая позволяет программистам автоматизировать сложные задачи парсинга с помощью собственного кода. Понимание языков разметки HTML,CSS/JQuery и YAML необходимо для настройки их краулеров.

  1. Diggernaut поставляется с довольно классным модулем OCR, который может помочь вам вытащить данные из изображений.
  2. Существует также возможность для разработчиков создавать Restful API для легкого доступа к веб-данным, и все по очень доступным ценам — даже их бесплатная версия поддерживает 3 краулера и 5K запросов страниц.

Если использовать метод “выбери и кликни”, то Diggernaut сначала трудновато понять. Кроме того, при довольно хорошем качестве функций извлечения изображений печально не обнаружить модулей извлечения документов.

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

Об авторе: Ида Джесси Сагина — специалист по контент-маркетингу, в настоящее время фокусируется на контенте для Scrapeworks — ассоциированного подразделения Mobius Knowledge Services. Она следит за новыми технологическими разработками и любит писать обо всем, что записывает данные.

Парсинг любого сайта «для чайников»: ни строчки программного кода

Разбираем тонкости парсинга данных в Screaming Frog Seo Spider

Если вам нужно просто собрать с сайта мета-данные, можно воспользоваться бесплатным парсером системы Promopult. Но бывает, что надо копать гораздо глубже и добывать больше данных, и тут уже без сложных (и небесплатных) инструментов не обойтись.

Евгений Костин рассказал о том, как спарсить любой сайт, даже если вы совсем не дружите с программированием. Разбор сделан на примере Screaming Frog Seo Spider.

Что такое парсинг и зачем он вообще нужен

Парсинг нужен, чтобы получить с сайтов некую информацию. Например, собрать данные о ценах с сайтов конкурентов.

Одно из применений парсинга — наполнение каталога новыми товарами на основе уже существующих сайтов в интернете.

Что такое парсинг

Упрощенно, парсинг — это сбор информации. Есть более сложные определения, но так как мы говорим о парсинге «для чайников», то нет никакого смысла усложнять терминологию. Парсинг — это сбор, как правило, структурированной информации. Чаще всего — в виде таблицы с конкретным набором данных. Например, данных по характеристикам товаров.

Парсер — программа, которая осуществляет этот самый сбор. Она ходит по ссылкам на страницы, которые вы указали, и собирает нужную информацию в Excel-файл либо куда-то еще.

Парсинг работает на основе XPath-запросов. XPath — язык запросов, который обращается к определенному участку кода страницы и собирает из него заданную информацию.

ПО для парсинга

Здесь есть важный момент. Если вы введете в поисковике слово «парсинг» или «заказать парсинг», то, как правило, вам будут предлагаться некие услуги от компаний, они стоят относительно дорого и называется это так: «мы напишем вам парсер». То есть «мы создадим некую программу либо на Python, либо на каком-то еще языке, которая будет собирать эту информацию с нужного вам сайта». Эта программа нацелена только на сбор конкретных данных, она не гибкая и без знаний программирования вы не сможете ее самостоятельно перенастроить для других задач.

При этом есть готовые решения, которые можно под себя настраивать как угодно и собирать что угодно. Более того, если вы — SEO-специалист, возможно, одной из этих программ пользуетесь, но просто не знаете, что в ней такой функционал есть. Либо знаете, но никогда не применяли, либо применяли не в полной мере.

Вот две программы, которые являются аналогами.

  • Screaming Frog SEO Spider (есть только годовая лицензия).
  • Netpeak Spider (есть триал на 14 дней, лицензии на месяц и более).

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

Профессиональные инструменты PromoPult: быстрее, чем руками, дешевле, чем у других, бесплатные опции.

Съем позиций, кластеризация запросов, парсер Wordstat, сбор поисковых подсказок, сбор фраз ассоциаций, парсер мета-тегов и заголовков, анализ индексации страниц, чек-лист оптимизации видео, генератор из YML, парсер ИКС Яндекса, нормализатор и комбинатор фраз, парсер сообществ и пользователей ВКонтакте.

Давайте смотреть на реальных примерах.

Пример 1. Как спарсить цену

Предположим, вы хотите с некого сайта собрать все цены товаров. Это ваш конкурент, и вы хотите узнать — сколько у него стоят товары.

Возьмем для примера сайт mosdommebel.ru.

Вот у нас есть страница карточки товара, есть название и есть цена этого товара. Как нам собрать эту цену и цены всех остальных товаров?

Мы видим, что цена отображается вверху справа, напротив заголовка H1. Теперь нам нужно посмотреть, как эта цена отображается в html-коде.

Нажимаем правой кнопкой мыши прямо на цену (не просто на какой-то фон или пустой участок). Затем выбираем пункт Inspect Element для того, чтобы в коде сразу его определить (Исследовать элемент или Просмотреть код элемента, в зависимости от браузера — прим. ред.).

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

Есть два варианта работы с парсерами.

Первый способ. Вы можете прямо в коде (любой браузер) нажать правой кнопкой мыши на тег и выбрать Скопировать > XPath. У вас таким образом скопируется строка, которая обращается к данному участку кода.

Выглядит она так:

Но этот вариант не очень надежен: если у вас в другой карточке товара верстка выглядит немного иначе (например, нет каких-то блоков или блоки расположены по-другому), то такой метод обращения может ни к чему не привести. И нужная информация не соберется.

Поэтому мы будем использовать второй способ. Есть специальные справки по языку XPath. Их очень много, можно просто загуглить «XPath примеры».

Здесь указано как что-то получить. Например, если мы хотим получить содержимое заголовка h1, нам нужно написать вот так:

Если мы хотим получить текст заголовка с классом productName, мы должны написать вот так:

То есть поставить «//» как обращение к некому элементу на странице, написать тег h1 и указать в квадратных скобках через символ @ «класс равен такому-то».

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

Куда вписывать XPath-запрос?

Мы идем в один из парсеров. В данном случае я воспользуюсь программой Screaming Frog Seo Spider.

Она бесплатна для анализа небольшого сайта — до 500 страниц.

Интерфейс Screaming Frog Seo Spider

Например, мы можем — бесплатно — посмотреть заголовки страниц, проверить нет ли у нас каких-нибудь пустых тайтлов или дубликатов тега H1, незаполненных мета-тегов или каких-нибудь битых ссылок.

Но за функционал для парсинга в любом случае придется платить, он доступен только в платной версии.

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

Во вкладке меню Configuration у нас есть подпункт Custom, и в нем есть еще один подпункт Extraction. Здесь мы можем дополнительно что-то поискать на тех страницах, которые мы укажем.

Заходим в Extraction. И напоминаю, что мы хотели с сайта (в данном случае с сайта Московский дом мебели) собрать цены товаров.

Мы выяснили в коде, что у нас все цены на карточках товара обозначаются тегом с классом totalPrice2. Формируем вот такой XPath запрос:

И указываем его в разделе Configuration > Custom > Extractions. Для удобства можем еще назвать как-нибудь колонку, которая у нас будет выгружаться. Например, «стоимость»:

Таким образом мы будем обращаться к коду страниц и из этого кода вытаскивать содержимое стоимости.

Также в настройках мы можем указать, что парсер будет собирать: весь html-код или только текст. Нам нужен только текст, без разметки, стилей и других элементов.

Нажимаем ОК. Мы задали кастомные параметры парсинга.

Как подобрать страницы для парсинга

Дальше есть еще один важный этап. Это, собственно, подбор страниц, по которым будет осуществляться парсинг.

Если мы просто укажем адрес сайта в Screaming Frog, парсер пойдет по всем страницам сайта. На инфостраницах и страницах категорий у нас нет цен, а нам нужны именно цены, которые указаны на карточках товара. Чтобы не тратить время, лучше загрузить в парсер конкретный список страниц, по которым мы будем ходить, — карточки товаров.

Откуда их взять?

Как правило, на любом сайте есть карта сайта XML, и находится она чаще всего по адресу: «адрес сайта/sitemap.xml». В случае с сайтом из нашего примера — это адрес

Либо вы можете зайти в robots.txt (site.ru/robots.txt) и посмотреть. Чаще всего в этом файле внизу содержится ссылка на карту сайта.

Ссылка на карту сайта в файле robots.txt

Даже если карта называется как-то странно, необычно, нестандартно, вы все равно увидите здесь ссылку.

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

У нас карта сайта есть, поэтому мы переходим по ссылке https://www.mosdommebel.ru/sitemap.xml и видим, что сама карта разделяется на несколько карт. Отдельная карта по статичным страницам, по категориям, по продуктам (карточкам товаров), по статьям и новостям.

Ссылки на отдельные sitemap-файлы под все типы страниц

Нас интересует карта продуктов, то есть карточек товаров.

Ссылка на sitemap-файл для карточек товара

Что с этим делать дальше. Возвращаемся в Screaming Frog Seo Spider. Сейчас он запущен у нас в стандартном режиме, в режиме Spider (паук), который ходит по всему сайту и анализирует все-все страницы. Нам нужно его запустить в режиме List.

Мы загрузим ему конкретный список страниц, по которому он будет ходить. Нажимаем на вкладку Mode и выбираем List.

Жмем кнопку Upload и кликаем по Download Sitemap.

Указываем ссылку на Sitemap карточек товара, нажимаем ОК.

Программа скачает все ссылки, указанные в карте сайта. В нашем случае Screaming Frog обнаружил более 40 тысяч ссылок на карточки товаров:

Нажимаем ОК и у нас начинается парсинг сайта.

После завершения парсинга на первой вкладке Internal мы можем посмотреть информацию по всем характеристикам: код ответа, индексируется/не индексируется, title страницы, description и все остальное.

Это все полезная информация, но мы шли за другим.

Вернемся к исходной задаче — посмотреть стоимость товаров. Для этого в интерфейсе Screaming Frog нам нужно перейти на вкладку Custom. Чтобы попасть на нее, нужно нажать на стрелочку, которая находится справа от всех вкладок. Из выпадающего списка выбрать пункт Custom.

И на этой вкладке из выпадающего списка фильтров (Filter) выберите Extraction.

Вы как раз и получите ту самую информацию, которую хотели собрать: список страниц и колонка «Стоимость 1» с ценами в рублях.

Задача выполнена, теперь все это можно выгрузить в xlsx или csv-файл.

После выгрузки стандартной заменой вы можете убрать букву «р», которая обозначает рубли. Просто, чтобы у вас были цены в чистом виде, без всяких там пробелов, буквы «р» и прочего.

Таким образом, вы получили информацию по стоимости товаров у сайта-конкурента.

Если бы мы хотели получить что-нибудь еще, например дополнительно еще собрать названия этих товаров, то нам нужно было бы зайти снова в Configuration > Custom > Extraction. И выбрать после этого еще один XPath-запрос и указать, например, что мы хотим собрать тег

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

Вот у нас теперь связка такая: url товара, его стоимость и название этого товара.

Если мы хотим получить описание или что-то еще — продолжаем в том же духе. Единственное, что нужно всегда помнить, что H1 собрать легко. Это стандартный элемент html-кода и для его парсинга можно использовать стандартный XPath-запрос (посмотрите в справке). В случае же с описанием или другими элементами нам нужно всегда возвращаться в код страницы и смотреть: как называется сам тег, какой у него класс/id либо какие-то другие атрибуты, к которым мы можем обратиться с помощью XPath-запроса.

Например, мы хотим собрать описание. Нужно снова идти в Inspect Element.

Оказывается, все описание товара лежит в теге

с классом product_description. Если мы его соберем, то у нас в таблицу выгрузится полное описание.

Здесь есть нюанс. Текст описания на странице сайта сделан с разметкой. Например, здесь есть переносы на новую строчку, что-то выделяется жирным.

Если вам нужно спарсить текст описания с уже готовой разметкой, то в настройках Extraction в парсере мы можем выбрать парсинг с html-кодом.

Если вы не хотите собирать весь html-код (потому что он может содержать какие-то классы, которые к вашему сайту никакого отношения не имеют), а нужен текст в чистом виде, выбираем только текст. Но помните, что тогда переносы строк и все остальное придется заполнять вручную.

Собрав все необходимые элементы и прогнав по ним парсинг, вы получите таблицу с исчерпывающей информацией по товарам у конкурента.

Такой парсинг можно запускать регулярно (например, раз в неделю) для отслеживания цен конкурентов. И сравнивать, у кого что стоит дороже/дешевле.

Пример 2. Как спарсить фотографии

Рассмотрим вариант решения другой прикладной задачи — парсинга фотографий.

На сайте Эльдорадо у каждого товара есть довольно таки немало фотографий. Предположим, вы их хотите взять — это универсальные фото от производителя, которые можно использовать для демонстрации на своем сайте.

Задача: собрать в эксель адреса всех картинок, которые есть у разных карточек товара. Не в виде файлов, а в виде ссылок. Потом по ссылкам вы сможете их скачать либо напрямую загрузить на свой сайт. Большинство движков интернет-магазинов, таких как Битрикс и Shop-Script, поддерживают загрузку фотографий по ссылке. Если вы в CSV-файле, который используете для импорта-экспорта, укажете ссылки на фотографии, то по ним движок сможет загрузить эти самые фотографии.

Ищем свойства картинок

Для начала нам нужно понять, где в коде пишутся свойства, адрес фотографии на каждой карточке товара.

Нажимаем правой клавишей на фотографию, выбираем Inspect Element, начинаем исследовать.

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

Изображения лежат в элементе , у которого id — firstFotoForma. Чтобы спарсить нужные нам картинки, понадобится вот такой XPath-запрос:

У нас здесь обращение к элементам с идентификатором firstFotoForma, дальше есть какие-то вложенные элементы (поэтому прописана звездочка), дальше тег img, из которого нужно получить содержимое атрибута src. То есть строку, в которой и прописан URL-адрес фотографии.

Давайте попробуем это сделать.

Берем XPath-запрос, в Screaming Frog переходим в Configuration > Custom > Extraction, вставляем и жмем ОК.

Для начала попробуем спарсить одну карточку. Нужно скопировать ее адрес и добавить в Screaming Frog таким образом: Upload > Paste

Нажимаем ОК. У нас начинается парсинг.

Screaming Frog спарсил одну карточку товара и у нас получилась такая табличка. Рассмотрим ее подробнее.

Мы загрузили один URL на входе, и у нас автоматически появилось сразу много столбцов «фото товара». Мы видим, что по этому товару собралось 9 фотографий.

Для проверки попробуем открыть одну из фотографий. Копируем адрес фотографии и вставляем в адресной строке браузера.

Фотография открылась, значит парсер сработал корректно и вытянул нужную нам информацию.

Теперь пройдемся по всему сайту в режиме Spider (для переключения в этот режим нужно нажать Mode > Spider). Укажем адрес https://www.eldorado.ru, нажимаем старт и запускаем парсинг.

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

А там, где у нас карточки товаров — собираются ссылки на все фотографии.

Таким образом мы сможем собрать их и положить в Excel-таблицу, где будут указаны ссылки на все фотографии для каждого товара.

Если бы мы собирали артикулы, то еще раз зашли бы в Configuration > Custom > Extraction и добавили бы еще два XPath-запроса: для парсинга артикулов, а также тегов h1, чтобы собрать еще названия. Так мы бы убили сразу двух зайцев и собрали бы связку: название товара + артикул + фото.

Пример 3. Как спарсить характеристики товаров

Следующий пример — ситуация, когда нам нужно насытить карточки товаров характеристиками. Представьте, что вы продаете книжки. Для каждой книги у вас указано мало характеристик — всего лишь год выпуска и автор. А у Озона (сильный конкурент, сильный сайт) — у него характеристик много.

Вы хотите собрать в эксель все эти данные с Озона и использовать их для своего сайта. Это техническая информация, вопросов с авторским правом нет.

Изучаем характеристики

Нажимаете правой кнопкой по данной характеристике, выбираете Inspect Element и смотрите, как называется элемент, который содержит каждую характеристику.

У нас это элемент

И дальше внутри каждого такого элемента

Значит, нам нужно собирать элементы

Для парсинга нам понадобится вот такой XPath-запрос:

Идем в Screaming Frog. Configuration > Custom > Extraction. Вставляем XPath-запрос, выбираем Extract Text (так как нам нужен только текст в чистом виде, без разметки), нажимаем ОК.

Переключаемся в режим Mode > List. Нажимаем Upload, указываем адрес страницы, с которой будем собирать характеристики, нажимаем ОК.

После завершения парсинга переключаемся на вкладку Custom, в списке фильтров выбираем Extraction.

И видим — парсер собрал нам все характеристики. В каждой ячейке находится название характеристики (например, «Автор») и ее значение («Игорь Ашманов»).

Пример 4. Как парсить отзывы (с рендерингом)

Следующий пример немного нестандартен — на грани «серого» SEO. Это парсинг отзывов с того же Озона. Допустим, мы хотим собрать и перенести на свой сайт тексты отзывов ко всем книгам.

Я покажу на одном примере — загружу один URL. Начнем с того, что посмотрим, где они лежат в коде.

Они находятся в элементе

Следовательно, нам нужен такой XPath-запрос:

Добавляем его в Screaming Frog. Теперь копируем адрес страницы, которую будем анализировать, и загружаем в парсер.

Жмем ОК и видим, что никакие отзывы у нас не загрузились:

Почему так? Разработчики Озона сделали так, что текст отзывов грузится в момент, когда вы докручиваете до места, где отзывы появляются (чтобы не перегружать страницу). То есть они изначально в коде нигде не видны.

Чтобы с этим справиться, нам нужно зайти в Configuration > Spider, переключиться на вкладку Rendering и выбрать JavaScript. Так при обходе страниц парсером будет срабатывать JavaScript и страница будет отрисовываться полностью — так, как пользователь увидел бы ее в браузере. Screaming Frog также будет делать скриншот отрисованной страницы.

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

Нажимаем ОК. Введем вручную адрес страницы, включая #comments (якорная ссылка на раздел страницы, где отображаются отзывы).

Для этого жмем Upload > Enter Manually и вводим адрес:

Обратите внимание. При рендеринге (особенно, если страниц много) парсер может работать очень долго.

Итак, парсер собрал 20 отзывов. Внизу они показываются в качестве отрисованной страницы. А вверху в табличном варианте мы видим текст этих отзывов.

Пример 5. Как спарсить скрытые телефоны на сайте ЦИАН

Следующий пример — сбор телефонов с сайта cian.ru. Здесь есть предложения о продаже квартир. Допустим, стоит задача собрать телефоны с каких-то предложений или вообще со всех.

У этой задачи есть особенности. На странице объявления телефон скрыт кнопкой «Показать телефон».

После клика он виден. А до этого в коде видна только сама кнопка.

Но на сайте есть недоработка, которой мы воспользуемся. После нажатия на кнопку «Показать телефон» мы видим, что она начинается «+7 967…». Теперь обновим страницу, как будто мы не нажимали кнопку, посмотрим исходный код страницы и поищем в нем «967».

И вот, мы видим, что этот телефон уже есть в коде. Он находится у ссылки, с классом a10a3f92e9—phone—3XYRR. Чтобы собрать все телефоны, нам нужно спарсить содержимое всех элементов с таким классом.

Используем этот класс в XPath-запросе:

Идем в Screaming Frog, Custom > Extraction. Указываем XPath-запрос и даем название колонке, в которую будут собираться телефоны:

Берем список ссылок (для примера я отобрал несколько ссылок на страницы объявлений) и добавляем их в парсер.

Итак, пожалуйста, мы видим связку: адрес страницы — номер телефона.

Также мы можем собрать в дополнение к телефонам еще что-то. Например, этаж.

Алгоритм такой же:

  1. Кликаем по этажу, Inspect Element.
  2. Смотрим, где в коде расположена информация об этажах и как обозначается.
  3. Используем класс или идентификатор этого элемента в XPath-запросе.
  4. Добавляем запрос и список страниц, запускаем парсер и собираем информацию.

Пример 6. Как парсить структуру сайта на примере DNS-Shop

И последний пример — сбор структуры сайта. С помощью парсинга можно собрать структуру какого-то большого каталога или интернет-магазина.

Рассмотрим, как собрать структуру dns-shop.ru. Для этого нам нужно понять, как строятся хлебные крошки.

Нажимаем на любую ссылку в хлебных крошках, выбираем Inspect Element.

Эта ссылка в коде находится в элементе , у которого атрибут itemprop (атрибут микроразметки) использует значение «name».

Используем элемент span с значением микроразметки в XPath-запросе:

Указываем XPath-запрос в парсере:

Пробуем спарсить одну страницу и получаем результат:

Таким образом мы можем пройтись по всем страницам сайта и собрать полную структуру.

Возможности парсинга на основе XPath

Что можно спарсить:

  1. Любую информацию с почти любого сайта. Нужно понимать, что есть сайты с защитой от парсинга. Например, если вы захотите спарсить любой проект Яндекса — у вас ничего не получится. Авито — тоже довольно таки сложно. Но большинство сайтов можно спарсить.
  2. Цены, наличие товаров, любые характеристики, фото, 3D-фото.
  3. Описание, отзывы, структуру сайта.
  4. Контакты, неочевидные свойства и т.д.

Любой элемент на странице, который есть в коде, вы можете вытянуть в Excel.

Ограничения при парсинге

  • Бан по user-agent. При обращении к сайту парсер отсылает запрос user-agent, в котором сообщает сайту информацию о себе. Некоторые сайты сразу блокируют доступ парсеров, которые в user-agent представляются как приложения. Это ограничение можно легко обойти. В Screaming Frog нужно зайти в Configuration > User-Agent и выбрать YandexBot или Googlebot.

Подмена юзер-агента вполне себе решает данное ограничение. К большинству сайтов мы получим доступ таким образом.

  • Запрет в robots.txt. Например, в robots.txt может быть прописан запрет индексирования каких-то разделов для Google-бота. Если мы user-agent настроили как Googlebot, то спарсить информацию с этого раздела не сможем.

Чтобы обойти ограничение, заходим в Screaming Frog в Configuration > Robots.txt > Settings

И выбираем игнорировать robots.txt

Если вы долгое время парсите какой-то сайт, то вас могут заблокировать на определенное или неопределенное время. Здесь два варианта решения:

  • Использовать VPN.
  • В настройках парсера снизить скорость, чтобы не делать лишнюю нагрузку на сайт и уменьшить вероятность бана.
  • Анализатор активности / капча

Некоторые сайты защищаются от парсинга с помощью умного анализатора активности. Если ваши действия похожи на роботизированные (когда обращаетесь к странице, у вас нет курсора, который двигается, или браузер не похож на стандартный), то анализатор показывает капчу, которую парсер не может обойти.

Такое ограничение можно обойти, но это долго и дорого.

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

Как создавать контент с помощью парсеров

В этой статье мы используем Pepper.Ninja — сервис парсинга аудитории ВКонтакте, который помогает таргетологам создавать более целевую рекламу и не тратить бюджет на лишние показы. Кроме поиска и сбора аудитории Pepper может найти, собрать и отсортировать посты на личных страницах и в сообществах. Алгоритмы, которыми мы делимся в этой статье, можно выполнить с помощью аналогичных инструментов, но для пользователей SMMplanner на Pro-тарифах все нужные инструменты доступны бесплатно.

Существуют сотни статей и инструкций по созданию контент-плана для контент-менеджера; большинство из них предлагает составить календарь на месяц и равномерно распределить идеи для постов по календарной сетке. Некоторые статьи предлагают идти от задач и целей самого контента, другие — от задач маркетинга. В этой статье мы расскажем, как планировать контент, занимаясь промышленным шпионажем. Логика очень проста: если наши коллеги, конкуренты или друзья создают какой-то контент, они наверняка делают это не просто так. Так почему бы не собирать эти идеи, обдумывать и переделывать их под себя. Кроме того, чьи-то идеи могут натолкнуть вас на какую-то свежую мысль — так тоже нередко случается.

Инструменты для работы

Для работы нам понадобятся парсеры Pepper.Ninja: популярные посты, поиск новостей и промо постов, а также поиск постов по хэштегам.

Эти парсеры доступны тем, у кого активен любой платный тариф Pepper.Ninja или любой Pro-тариф в сервисе SMMplanner (для этого нужно активировать специальный пакет).

Если вы никогда не использовали Pepper.Ninja, зарегистрируйтесь в нём и вам подарят 3 бесплатных полнофункциональных дня.

Те, у кого активен Pro-тариф в SMMplanner, может получить эксклюзивный доступ к Pepper.Ninja следующим образом:

  1. Убедитесь, что у вас активен Pro-тариф SMMplanner.

Pro-тарифы

Если у вас выбрана оплата SMMplanner по постам, а не по тарифам, зайдите в раздел «Тарифы и услуги» — там находится кнопка перехода на Pro-тарифы.

Можно протестировать неделю Pro-тарифа бесплатно, а все оплаченные посты конвертируются в дни тарифа

Приобретая тариф, вы получаете безлимитный постинг, видеопостинг и другие бонусы.

Так выглядит активированный Pro-тариф

  1. Зайдите на страницу эксклюзивного доступа к Pepper.Ninja или нажмите на кнопку «Доступ к Pepper.Ninja», которая появится у вас после активации тарифа.

Нажмите на кнопку авторизации

Как работают парсеры (краткий экскурс)

Алгоритм работы со всеми парсерами практически одинаков, поэтому сначала мы рассмотрим базовое управление Pepper.Ninja, а затем перейдем непосредственно к контент-плану. Сразу скажем: работать можно и с телефона, но с компьютера гораздо удобнее.

В самом начале списка расположена зеленая кнопка с названием «Быстрый парсинг» — это самый быстрый доступ практически ко всем возможностям сервиса.

Возле недоступных парсеров висит замочек

Все «контентные» парсеры работают примерно по одному алгоритму:

  • Нажимаем на кнопку «Быстрый парсинг»
  • Вставляем в окно «источник»
  • В блоке «Что вы хотите получить» выбираем запрос «Посты»
  • Корректируем настройки, указываем вложения, даты, устанавливаем фильтры поиска
  • Нажимаем на кнопку «Запустить» и ждём, пока сервис выполнит задание.
  • Скорость выполнения зависит от ваших настроек: чем меньше срок и количество источников, тем быстрее собирается информация.

Перед запуском убедитесь, что выбрали именно Посты, иначе вы получите совсем другую информацию

А теперь детально разберем каждую настройку поиска.

Источник. В зависимости от парсера, это будут ключевые слова, ссылки на аккаунты или сообщества, хэштеги. Если нужно работать с несколькими источниками, то каждый новый источник нужно отделять запятой или вставлять с новой строки. Учтите, собирать посты из разных источников можно, если их размеры или охваты не сильно отличаются друг от друга, в противном случае все «хорошие» посты будут из одного сообщества, а все «плохие» из другого. Сравнивать такие посты можно только друг относительно друга, а не в одной ленте.

Перед тем как парсить чьи-то посты, нужно собрать список конкурентов

«Конкуренты» — все сообщества, которые работают на мою целевую аудиторию и закрывают ту же потребность. Однако, работая с контентом, не грех причислить к «конкурентам» и тех, кто работает на похожую ЦА. К примеру, если я продвигаю кофейню, то я буду анализировать не только другие кофейни города или района, но и кофейни из других городов, а также парки развлечений, кинотеатры, коворкинги. Потому что в кофейни ходят не только попить кофе, но и на свидания, а на свидания также ходят в кино или зоопарк, поэтому я конкурирую с кинотеатром и т.д.

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

Можно дать результатам парсинга свое название — некоторым так удобнее

Вложения. Можно собирать посты с определенным вложением: видео, картинки, музыка, товары или опросы.

Забегаем вперед: чтобы изучить интересы ЦА мы будем собирать посты с опросами

Период поиска. По умолчанию стоит месяц. Вы можете менять сроки и собирать посты хоть за несколько лет, но, как правило, в таких больших сроках нет смысла.

В большинстве случаев посты безнадежно устаревают за три-четыре месяца

Дополнительные фильтры для сбора постов. Если вам нужны посты, которые тесно связаны с конкретной темой, или парсер собирает много «лишних» постов и вы хотите убрать ненужные, воспользуйтесь фильтрами:

Ключевые слова — чтобы собирать те посты, которые содержат нужное вам слово.

Минус-слова — чтобы не собирать посты с конкретным словом.

Например, вы изучаете посты, которые делают лидеры мнений, но в выдаче много конкурсных постов и постов, не связанных с вашей тематикой. Вы можете использовать минус-слова: «конкурс», «за репост», чтобы убрать из парсинга эти публикации.

Плюс-слова — если в посте с минус-словами найдутся плюс-слова, этот пост будет учтен.

Поставьте галочку напротив «дополнительных настроек» и откроется фильтр

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

Схема работы

  • Собираем список коллег и конкурентов.
  • Изучаем контент, который публикуют подписчики, потенциальные клиенты, наши коллеги и конкуренты. Особенно тщательно изучаем посты с обратной связью: посты с комментариями и опросы.
  • Во время изучения собранных постов составляем список идей для публикаций.
  • Составляем контент-план: делаем рубрикатор, сортируем идеи по рубрикам и равномерно заполняем наш план.

Шаг 1: Собираем список коллег или конкурентов

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

Я новичок и пока не обзавелся своим списком популярных блогеров. Поэтому сначала я иду в парсер «Сбор новостей» и по ключевым словам «капучино», «латте», «V60», «кемекс» и т.п. собираю посты, опубликованные во ВКонтакте от сообществ и людей.

Чем больше ключевых слов, тем дольше Pepper будет искать; возможно, стоит убрать «кофе», оставив кофейные термины

Найти собранные парсером посты можно в «Заданиях». По-умолчанию, они отображаются в хронологическом порядке — но в моем случае так изучать их бессмысленно.

Как правильно изучать посты:

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

Настройки сортировки расположены над лентой собранных постов

    Чтобы найти идеи для постов, я выберу сортировку по количеству комментариев и по отношению комментариев к охватам. Как правило, в комментариях можно найти новые идеи для классного контента! А в постах можно найти идеи для вовлекающих механик. Все эти идеи однозначно нужно записать.

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

    Чтобы убрать «мусорные» посты, нужно открыть фильтры и задать дополнительные параметры. После фильтрации постов станет меньше.

    Шаг 2: Ищем контент в ленте конкурентов и хэштегов

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

    По факту мы проводим анализ контента конкурентов. Если вы хотите понять, какой контент «заходил» у вас, воспользуйтесь нашей инструкцией по детальному анализу сообществ через статистику записей.

    Как анализировать контент:

    Изучайте первую страницу с «хорошими» постами и последнюю страницу с «плохими». Чем чаще вы будете так делать, тем быстрее обнаружите уникальные правила для того, чтобы сделать контент популярнее или наоборот.

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

Чек-лист должен постоянно обновляться

  • Просматривая результаты парсинга, следите за своими мыслями и эмоциями. Если вам понравился пост, запишите краткую концепцию поста, которую вы, возможно, повторите. Если вы, наоборот, наткнулись на откровенно плохой пост, запишите в список идей «как не надо делать». Посты, которые не вызывают у вас никаких эмоций, пропускайте — скорее всего, у большинства ваших подписчиков будет такое же отношение.
  • Обязательно сортируйте посты по комментариям. Вам нужны сами комментарии, обычно в них подписчики делятся мыслями, указывают на ошибки и дают ценную обратную связь, которую нужно использовать.
  • Соберите посты, используя вложения «опросы». Опросы — редкий формат контента, поэтому можно удлинить сроки сбора. Просматривая ленту, состоящую только из опросов, можно узнать отношение целевой аудитории к разным вещам. Остальные вложения не столь интересны.

Если после изучения поста и комментариев у вас рождаются новые идеи для контента, вы на верном пути.

Отдельно поговорим о поиске по хэштегам

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

Рубрикационные хештеги — это хэштеги, которые пишутся с @ и названием сообщества. Многие сообщества пользуются ими по нескольким причинам: чтобы разделить контент и сделать его более удобным для восприятия, не уводить трафик из своего сообщества в общую ленту ВКонтакте, собирать посты по отдельным направлениям.

Рубрикационные хэштеги SMMplanner делят контент на десятки направлений

Шаг 3: Изучаем промо контент

«Шпион промо постов» находит посты, которые были созданы в рекламном кабинете ВКонтакте. Эти посты нельзя увидеть в ленте сообщества и, как правило, их не увидишь на личных страницах.

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

Промо посты помогают ответить на важные вопросы:

  • Использует ли наш конкурент рекламу (если нет, то почему и как он тогда продвигается)?
  • Стоит ли нам конкурировать в таргетированной рекламе?
  • Какой коммерческий контент стоит использовать?
  • Отличается ли контент в рекламе от контента в сообществе?
  • Какие акции использует конкурент для привлечения клиентов?
  • Какие идеи для продающего контента используются?

Например, можно заранее выяснить, какую рекламу готовили конкуренты на 8 марта прошлого года, и даже приблизительно оценить, как она сработала.

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

Шаг 4: Составляем контент-план

Контент-план — это документ, который помогает контент-менеджеру знать, какие посты ему нужно готовить, а заказчику — оценивать план работ для контент-менеджера. На этом возможности этого документа не заканчиваются: в нем можно собирать идеи для постов и новых рубрик, а еще вести учёт, сколько времени потратили на составление контента, какие посты и рубрики «зашли», а какие нет.

Статьи SMMplanner про контент-план:

Как вести контент-план? Единых правил и стандартов нет. Я пользуюсь Excel-таблицами, другие варианты оформления контент-планов смотрите в статье «Инструменты и шаблоны контент-планов» (там же можно скачать несколько бесплатных шаблонов).

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

Определяя частоту постинга, нужно понять:

  • как часто публикуют конкуренты и почему,
  • оценить свои возможности по постингу,
  • найти зависимость охвата от количества постов в своём сообществе.

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

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

Потом можно распределить рубрики по дням и дополнить их идеями для публикаций.

Подытожим

Можно строить свою контент-стратегию на интуиции и внутренних предпочтениях, но правильнее основываться на целях и уже существующих данных — зачем изобретать велосипед?

Используйте парсер «Поиск новостей» для поиска новых крутых сообществ и авторов.

Используйте парсеры «Поиск по хэштегам», «Популярные посты» и «Популярные посты пользователей», чтобы найти новые идеи для рубрик и постов.

Илья Слюсарев

СММщик, контент-мейкер и просто хороший человек.

Сбор и обработка данных — парсинг

После серии наших статей о big data и сборе данных (ссылки — Анализ рынка недвижимости, Прогноз зарплаты по описанию вакансии), мы получили кучу заявок на новые проекты по парсингу. Клиенты хотят собирать всё и вся — от данных по посещенным страницам и каталогам конкурентов, до сведений о выгуле собак (было предложение разработать приложение, связанное с таким событием).

Мы столкнулись с рядом однотипных вопросов и решили подготовить мини-ликбез по тематике сбора и обработки данных — парсингу.

1. Что такое парсинг?

Под парсингом мы подразумеваем сбор определенной информации в интернете в целом, или с конкретного ресурса — базы данных, веб-сайта, файла. С ресурсов можно собирать и все подряд, но как правило зада состоит в том, чтобы собрать что-то конкретное. Например, в задаче по анализу объявлений о продаже автомобилей мы собирали с Авито, Автору, Дром, и т. д. свойства автомобилей и их цену. При создании сервиса по недвижимости, мы собирали объявления по продаже квартир. В данной статье мы будем говорить о сборе данных с веб-сайтов.

2. Как происходит сбор данных? Настройка параметров парсера.

Программисты создают роботов, которые обходят заданные ресурсы (веб-сайты), просматривают все их страницы и собирают все данные, которые отвечают заданным параметрам, в подготовленную базу данных. Как правило, хоть информация везде может быть одной и той же (в примере с автомобилем, объем двигателя, пробег и т. п. для объявления на Авито и Автору одинаковые), но предоставление ее на сайтах будет разным — даже в силу того, что каждый сайт имеет уникальное оформление — читай код html.

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

Если необходимо собирать данные часто и с некоторых ресурсов, для удобства создается панель управления парсером, в которой задаются правила сбора (предварительно разработанные), отображается журнал работы парсера, статистика, а также предпросмотр «сырых» собранных данных. Не лишним будет настроить уведомления о возникающих ошибках, сбоях самого парсера, изменении структуры информации на целевом ресурсе.

Без панели управления тяжело анализировать работу сборщиков данных, невозможно быстро среагировать в случае возникновения проблем.

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

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

При составлении ТЗ для создания парсера у вас должны быть ответы на следующие вопросы:

  • Какие конкретно данные вы бы хотели получить. Например, ссылка на объявление; характеристики-значение «Объем двигателя», «Пробег», «Тип КП», «Привод» и т. д.
  • С каких ресурсов будет идти сбор (веб-сайты);
  • Отдаются ли данные напрямую, нет ли блокировок по трафику/запросам, нет ли блоков на самих страницах;
  • Разработал ли программист правило сбора с ресурса;
  • Предусмотрено ли задание/изменение параметров сбора? Будет ли панель управления с журналом работы и статистикой работы парсера;
  • Как вы будете узнавать о проблемах и ошибках работы парсера;
  • Куда будут собираться данные, продумайте структуру и содержание базы данных;
  • Что делать если в данных будет много мусора и ошибок, какие параметры для оценки качества сбора, какие возможны опечатки и некорректные заполнения;

Мы бегло разобрали что такое сбор данных-парсинг, как он осуществляется и какие проблемы могут возникнуть.

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

Если у вас есть интересный проект или хотя бы идея — мы открыты!

Парсинг — всё по этой теме для программистов

История такая: есть у меня программа для парсинга разных сайтов, большим спросом пользуется, многим нравится, — но написана она на VBA (то есть плагин для Excel)

И вот задумался я о том, что поддержка макросов в Excel в любой момент может прекратиться, и не сделать ли мне из программы этой (точнее, по её подобию) «нормальную» прогу (приложение под Windows) или веб-сервис.

Собственно, ни в том ни в другом сам сделать не смогу, потому, придется заказывать разработку спецам (что выйдет недешево, ибо у меня там более 20 тыс строк кода), а потом самостоятельно уже допиливать помаленьку.
Но знаю, что разработка однозначно окупится.
Вот только ясности, что более востребовано будет через 5 лет для этой конкретной задачи (парсинг), у меня нет

Веб-сервис удобен, но на сервак будет жесткая нагрузка (когда десятки клиентов запустят с него парсинг разных сайтов), потому, придется за трафик много платить, и аренда хорошего железа будет стоить дорого.
Но с пользователей можно будет брать абонентскую плату (ибо это будет SAAS)

Программа для компа — потребляет ресурсы компа, потому, от меня вообще никаких затрат. Но программы взламывают, да и антивирусы на парсеры ругаются постоянно.
На каком языке программирования делать прогу, если для компа?
Стоит ли делать кроссплатформенное решение, или все до сих пор на виндах сидят, и версии для windows будет достаточно?

Наверняка есть люди, кто в теме, — так что жду советов
Ну и если просто мысли есть на этот счёт, — с удовольствием выслушаю.

Парсинг: что это такое и как он создается

Очень часто в Интернете можно столкнуться с таким понятием, как «парсинг». Что это такое и для чего нужно? Бывает так, что программистам дают задание спарсить какой-либо сайт. Или обычный пользователь сталкивается с таким термином и не знает его значения.

Определение

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

А в отношении сайтов в качестве ответа на вопросы про парсинг — «что это такое», «зачем используется» — можно сказать, что это процесс последовательного синтаксического анализа той информации, которая размещена на веб-страницах. Текст здесь является набором данных, который иерархически упорядочен и структурирован при помощи компьютерного и человеческого языка. Последний дает непосредственно информацию, за которой люди и приходят. А языки программирования задают способы отображения этих данных на мониторе пользователя.

Поиск контента

Когда владелец только создает свой сайт, перед ним встает проблема: откуда брать контент для заполнения? Самым оптимальным вариантом является поиск в глобальной сети. Ведь там знаний бесконечно много. Но тут же возникают и некоторые сложности:

  • Так как интернет постоянно растет и развивается, то ясно, что сайт должен содержать огромные объемы информации, чтобы иметь преимущество над конкурентами. Сегодня контента должно быть очень много. А вручную заполнить таким количеством информации сайт очень трудно.
  • Так как человек не в состоянии обслуживать бесконечный поток постоянно меняющейся информации, необходим парсинг. Что это даст? Автоматизацию процесса сбора информации и ее изменения.

Плюсы парсера

Программа, осуществляющая процесс парсинга, в сравнении с человеком обладает рядом преимуществ:

  • Она быстро пройдется по тысячам интернет-страниц.
  • Без проблем разделит технические данные и нужную человеку информацию.
  • Без ошибок отбросит ненужное, оставив только то, что необходимо.
  • Произведет упаковку данных в необходимый для пользователя вид.

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

Разработка

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

Создание программы-парсера не требует серьезных знаний о языке программирования. Необязательны и фундаментальные сведения о технологиях. Но что-то знать все-таки необходимо. Итак, чтобы знать, как создать парсинг, то есть программу-анализатор, нужно усвоить следующее:

  • Для первоначального алгоритма функционирования программы нужен тщательный анализ исходного кода веб-страницы, являющейся донором. Тут не обойтись хотя бы без средних знаний технологий верстки. Это HTML, CSS и язык JavaScript.
  • Чтобы погрузиться в тему поглубже, нужно изучить технологию под названием DOM. Она дает возможность очень эффективно работать с иерархией веб-страницы.
  • Самый трудный этап – написание парсера. Здесь нужно владеть инструментом для обработки текста. Опытные программисты чаще всего используют для этой цели регулярные выражения, являющиеся достаточно мощным средством. Но это под силу далеко не каждому разработчику. Тут нужно особое мышление. Оптимальным решением будет использование уже готовых библиотек, которые создавались специально под парсинг. Что это за библиотеки? Это упакованный программный код, который уже содержит все функции для анализа.
  • Очень желательно разбираться в объектно-ориентированном программировании, которое поддерживается любым языком программирования.
  • Завершающий этап обработки результатов анализа предполагает, что данные будут структурированы и сохранены. Тут не обойтись без знаний баз данных.
  • Нужны знания и владение функциями, служащими для работы с файлами. Ведь данные нужно будет записывать в эти самые файлы, а потом, возможно, конвертировать в формат электронных таблиц.

Этапы

Если все требования соблюдены, то дальнейший процесс можно разделить на этапы:

  1. На первом этапе парсинга получают исходный код интернет-страницы.
  2. Следующий шаг – извлечение нужных данных из кода разметки. Здесь отбрасывается ненужный код, вся информация выстраивается по иерархии.
  3. После успешной обработки данных, их необходимо сохранить в том виде, который можно будет в дальнейшем обрабатывать.
  4. Так как сайт состоит не из одной страницы, а из множества, алгоритм должен уметь переходить на последующие страницы.

Итак, парсинг – что это такое? Это процесс анализа содержимого сайта и вычленения нужной информации. Используя вышеописанные сведения, можно наполнять свои сайты большим количеством контента автоматически. А это дает возможность выиграть время и победить в сложной конкуренции на рынке сайтостроителей.

Парсинг Что это и где используется.

Мы предлагаем:

Новые тарифы хостинга — «Минимальный» и «Безлимитный»

— Всего 60 рублей за ГОД;

— Идеально подойдет небольшим сайтам;

— Поддержка популярных CMS

190 рублей в месяц;

— Количество сайтов — не ограничено;

— Дисковое пространство — не ограничено;

— Базы данных — не ограничено;

Содержание

Парсинг (Parsing) – это принятое в информатике определение синтаксического анализа. Для этого создается математическая модель сравнения лексем с формальной грамматикой, описанная одним из языков программирования. Например, PHP, Perl, Ruby, Python.

Когда человек читает, то, с точки зрения науки филологии, он совершает синтаксический анализ, сравнивая увиденные на бумаге слова (лексемы) с теми, что есть в его словарном запасе (формальной грамматикой).

Как работает парсинг, что это такое? Алгоритм работы парсера.

Независимо от того на каком формальном языке программирования написан парсер, алгоритм его действия остается одинаковым:

  1. выход в интернет, получение доступа к коду веб-ресурса и его скачивание;
  2. чтение, извлечение и обработка данных;
  3. представление извлеченных данных в удобоваримом виде – файлы .txt, .sql, .xml, .html и других форматах.

В интернете часто встречаются выражения, из которых следует, будто парсер (поисковый робот, бот) путешествует по Всемирной сети. Но зачастую эта программа никогда не покидает компьютера, на котором она инсталлирована.

Виртуальный хостинг сайтов для популярных CMS:

Зачем нужен парсинг?

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

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

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

Основа работы парсера.

Конечно же, парсеры не читают текста, они всего лишь сравнивают предложенный набор слов с тем, что обнаружили в интернете и действуют по заданной программе. То, как поисковый робот должен поступить с найденным контентом, написано в командной строке, содержащей набор букв, слов, выражений и знаков программного синтаксиса. Такая командная строка называется «регулярное выражение». Русские программисты используют жаргонные слова «маска» и «шаблон».

Синтаксис Unix позволяет регулировать активность парсинга, делая его «ленивым», «жадным» и даже «сверхжадным». От этого параметра зависит длина строки, которую парсер копирует с веб-ресурса. Сверхжадный парсинг получает весь контент страницы, её HTML-код и внешнюю таблицу CSS.

Парсеры и PHP.

Этот серверный язык удобен для создания парсеров:

    У него есть встроенная библиотека libcurl, с помощью которой скрипт подключается к любым типам серверов, в том числе работающих по протоколам https (зашифрованное соединение), ftp, telnet. PHP поддерживает регулярные выражения, с помощью которых парсер обрабатывает данные. У него есть библиотека DOM для работы с XML – расширяемым языком разметки текста, на котором обычно представляются результаты работы парсера. Он отлично ладит с HTML, поскольку создавался для его автоматической генерации.

Этические и технические сложности парсинга.

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

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

Разное [ZennoPoster] Практические курсы по парсингу на ZennoPoster

Arsenn32

Arsenn32

Автор: ZennoPoster
Название: Практические курсы по парсингу на ZennoPoster

Описание:
Я думаю, если Вы перешли в эту тему, то Вы уже знаете, что такое парсинг и имеете представление о ZennoPoster. Данный курс нацелен на тех, кто не любит теорию, а понимает только на практике, как и что работает. Мы практически затронем основные ресурсы, на которых собирают ту или иную информацию.

В данном курсе, мы рассмотрим:
1. Парсинг картинок из поисковых систем Google и Yandex.
2. Парсинг Avito.
3. Парсинг выдачи поисковых систем Google и Yandex.
4. Парсинг групп Facebook.
5. Парсинг Инстаграма.
6. Парсинг картинок из групп в ВК.
7. Парсинг YouTube.
8. Загрузка видео через SaveFrom.
9. Парсинг новостей/статей.

А теперь подробно о каждом шаге:

Парсинг картинок из поисковых систем Google и Yandex:
В этом видео уроке мы рассмотрим, как сделать режимы парсинга в ZennoPoster, а если быть точным, у нас будет 2 режима:
1. Парсинг Google картинок
2. Парсинг Yandex картинок
Картинки мы будем качать при помощи Get запросов.
//Прилагается готовый шаблон

Парсинг Avito:
В этом видео уроке у нас так же будет 2 режима парсинга:
1. Сбор ссылок на объявления с указанием лимитов парсинга
2. Парсинг информации из самих объявлений(в примере рассмотрена недвижимость)
//Прилагается готовый шаблон

Парсинг выдачи поисковых систем Google и Yandex:
В данном видео уроке, мы будем парсить ссылки на сайты, а так же определять точную позицию нашего сайта.
Все данные мы будем заносить в Excel таблицу для удобства просмотра результатов.
Парсинг будет работать в 2ух режимах:
1. Проверка позиций в Google
2. Проверка позиций в Yandex
//Прилагается готовый шаблон

Парсинг групп Facebook:
В данном видео уроке мы рассмотрим, как парсить группы в Facebook по ключевым запросам.
//Прилагается готовый шаблон

Парсинг Инстаграма:
В данном видео уроке, у нас будет 2 режима работы:
1. Парсинг пользователей по хэштегам
2. Парсинг информации со страницы пользователя
Данные БИО(информации со страницы) мы будем записывать в Excel таблицу в следующем виде:
Ссылка на профиль|Количество публикаций|Количество подписчиков|Имя в профиле
//Прилагается готовый шаблон

Парсинг картинок из групп в ВК:
В данном видео уроке, мы рассмотрим, как собирать картинки из постов в группах ВК.
//Прилагается готовый шаблон

Парсинг YouTube:
В данном видео уроке, мы будем собирать ссылки на видео, по ключевым запросам с использованием фильтров YouTube.
//Прилагается готовый шаблон

Загрузка видео через SaveFrom:
В данном видео уроке, мы рассмотрим, как загружать к себе на компьютер видео с YouTube, через сервис SaveFrom
//Прилагается готовый шаблон

Парсинг новостей:
В данном видео уроке, мы рассмотрим, как собирать текст из статей, на портале Life новости.
У нас будет 2 режима работы:
1. Парсим ссылки на новости
2. Парсим текст из статей
//Прилагается готовый шаблон

Для чего Вам учиться парсить информацию с сайтов?
Например:
Вам необходимо найти тысячи картинок за короткий период времени для каких то целей.
Вам нужно собраться информацию с какого то интернет магазина, для того что бы проверить все позиции и сделать предложение своего интернет магазина чуть более выгодным.
Вам не нужно больше нанимать программистов и платить им от 1000 до 3000 рублей за простой парсер, т.к. Вы сами можете написать шаблон за пару часов, а то и меньше.
Вы можете сделать парсер под себя и собирать свою ЦА со своими фишками и параметрами.
Вы можете писать парсеры на заказ для других людей и монетизировать свои знания.
Вы можете собирать, какие либо БД и продавать их.
И это только малая часть ответов на данный вопрос, ну думаю, Вы понимаете.

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

Бонусы:
Бонус №1: Видео урок по проверке на работу и определению страны прокси, а так же сортировке по файлам.
Бонус №2: Шаблон парсера телефонов с Юлы Get запросами с открытым кодом.

API для всех и каждого: создаем мощный парсер веб-сайтов без единой строки кода

Содержание статьи

Часто возникает задача периодически парсить какой-нибудь сайт на наличие новой информации. Например, если ты пишешь агрегатор контента с новостного сайта или форума, в котором нет поддержки RSS. Проще всего написать скрепер на Питоне и разобрать полученный HTML через beautifulsoup или регулярками. Однако есть более элегантный способ — самому сделать недостающие API для сайта и получать ответы в привычном JSON, как будто бы у сайта есть нативный API.

Не будем далеко ходить за примером и напишем парсер контента с «Хакера». Как ты знаешь, сайт нашего журнала сейчас не предоставляет никакого API для программного получения статей, кроме RSS. Однако RSS не всегда удобен, да и выдает далеко не всю нужную информацию. Исправим это!

Постановка задачи

Итак, наша задача: сделать API вида GET /posts , который бы отдавал десять последних статей с «Хакера» в JSON. Также нам нужно иметь возможность задавать сдвиг, то есть раз за разом получать следующие десять постов.

Ответ должен быть таким:

Также нужно иметь возможность получать следующие десять постов — со второй страницы, третьей и так далее. Это делается через GET-параметр вида GET /posts?page=2 . Если page в запросе не указан, считаем его равным 1 и отдаем посты с первой страницы «Хакера». В общем, задача ясна, переходим к решению.

Фреймворк для веба

WrapAPI — это довольно новый (пара месяцев от роду) сервис для построения мощных кастомных парсеров веба и предоставления к ним доступа по API. Не пугайся, если ничего не понял, сейчас поясню на пальцах. Работает так:

  1. Указываешь WrapAPI страницу, которую нужно парсить (в нашем случае главную «Хакера» — https://xakep.ru/).
  2. Говоришь, с какими параметрами обращаться к серверу, каким HTTP-методом (GET или POST), какие query-параметры передавать, какие POST-параметры в body, куки, хедеры. Короче, все, что нужно, чтобы сервер вернул тебе нормальную страничку и ничего не заподозрил.
  3. Указываешь WrapAPI, где на полученной странице ценный контент, который надо вытащить, в каком виде его представлять.
  4. Получаешь готовый URL для API вида GET /posts , который вернет тебе все выдранные с главной «Хакера» посты в удобном JSON!

Немного о приватности запросов

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

  1. Каждый API-репозиторий (а соответственно, и все API-запросы в нем) можно сделать приватным. Они не будут показываться в общем списке уже созданных API на платформе WrapAPI. Просто выбери достаточно сложное имя репозитория, и шанс, что на него кто-то забредет случайно, сведется к минимуму.
  2. Любой запрос к WrapAPI требует специального токена, который нужно получить в своей учетке WrapAPI. То есть просто так узнать URL к твоему репозиторию и таскать через него данные не получится. Токены подразделяются на два типа: серверные и клиентские, для использования прямо на веб-страничке через JavaScript. Для последних нужно указать домен, с которого будут поступать запросы.
  3. Ну и наконец, в скором времени разработчик обещает выпустить self-hosted версию WrapAPI, которую ты сможешь поставить на свой сервер и забыть о проблеме утечек данных (конечно, при условии, что в коде WrapAPI не будет бэкдоров).

Приготовления

Несколько простых шагов перед началом.

  1. Идем на сайт WrapAPI, создаем новую учетку и логинимся в нее.
  2. Устанавливаем расширение для Chrome (подойдет любой Chromium-based браузер), открываем консоль разработчика и видим новую вкладку WrapAPI .
  3. Переходим на нее и логинимся.

Это расширение нам понадобится для того, чтобы перехватывать запросы, которые мы собираемся эмулировать, и быстро направлять их в WrapAPI для дальнейшей работы. По логике работы это расширение очень похоже на связку Burp Proxy + Burp Intruder.

Для работы с WrapAPI нужно повторно авторизоваться еще и в расширении в консоли разработчика Chrome

Отлавливаем запросы

Теперь нужно указать WrapAPI, какой HTTP-запрос мы будем использовать для построения нашего API. Идем на сайт «Хакера» и открываем консоль разработчика, переключившись на вкладку WrapAPI.

Для получения постов я предлагаю использовать запрос пагинации, он доступен без авторизации и может отдавать по десять постов для любой страницы «Хакера», возвращая HTML в объекте JSON (см. ниже).

Запросы, которые генерятся по нажатию на ссылки пагинатора, будем использовать как образец

Чтобы WrapAPI начал перехватывать запросы, нажми Start capturing requests и после этого выполни целевой запрос (на пагинацию). Плагин поймает POST-запрос к странице https://xakep.ru/wp-admin/admin-ajax.php с кучей form/urlencoded-параметров в теле, в том числе и номером страницы. Ответом на запрос будет JSON-объект с параметром content , содержащий закешированный HTML-код с новыми постами. Собственно, этот блок и нужно парсить WrapAPI.

Запрос пойман, сохраняем его на сервер WrapAPI

Конфигурируем WrapAPI

После того как ты выбрал нужное имя для твоего репозитория (я взял test001 и endpoint posts ) и сохранил его на сервер WrapAPI через расширение для Chrome, иди на сайт WrapAPI и открывай репозиторий. Самое время настраивать наш API.

Обзор нашего будущего API

Переходи на вкладку Inputs and request. Здесь нам понадобится указать, с какими параметрами WrapAPI должен парсить запрашиваемую страницу, чтобы сервер отдал ему валидный ответ.

Конфигурируем входные параметры запроса

Аккуратно перебей все параметры из пойманной WrapAPI полезной нагрузки (POST body payload) в поле слева. Для всех параметров, кроме paginated , выставь тип Constant . Это означает, что в запросы к серверу будут поставляться предопределенные значения, управлять которыми мы не сможем (нам это и не нужно). А вот для paginated выставляй Variable API , указав имя page . Это позволит нам потом обращаться к нашему API по URL вида GET /posts?page=5 (с query-параметром page ), а на сервер уже будет уходить полноценный POST со всеми перечисленными параметрами.

Заголовки запроса ниже можно не трогать, я использовал стандартные из Chromium. Если парсишь не «Хакер», а данные с какого-нибудь закрытого сервера, можешь подставить туда нужные куки, хедеры, basic-auth и все, что нужно. Одним словом, ты сможешь настроить свой запрос так, чтобы сервер безо всяких подозрений отдал тебе контент.

Выставляем необходимые POST-параметры в формате form/urlencoded, чтобы наш запрос отработал правильно

Учим WrapAPI недостающим фичам

Теперь нужно указать WrapAPI, как обрабатывать полученный результат и в каком виде его представлять. Переходи на следующую вкладку — Outputs and response.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Мастер Йода рекомендует:  Пропускная способность Internet2 увеличена до 100 ГБсек
Добавить комментарий