Парсинг с помощью Ruby - Краткое обучение

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

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

Услуги парсинга сайтов помогают извлекать целевые данные из Интернета для дальнейшего использования аналитическим механизмом или BI-инструментом. Цель парсинга остается разнообразной:

  • Извлечение данных является эффективным способом рекламы вашего бизнеса и продвижения продуктов/услуг.
  • Пользователи, потребители и посетители веб-сайтов могут получить желаемую информацию об услуге или продукте.
  • Компании могут получить конкурентную информацию о стратегиях и планах по увеличению своей доли рынка.
  • Бренды могут узнать общее восприятие своего бренда благодаря взаимодействию людей в социальных сетях. Это помогает маркетинговым командам разрабатывать и внедрять соответствующие маркетинговые сообщения, предназначенные специально для данной аудитории, тем самым повышая вероятность конверсии.  
  • Предприятия могут получить более четкое представление о потребностях, болевых точках и предпочтениях своей целевой аудитории. Затем они могут направить развитие продукта в правильном направлении, используя эти ценные данные.

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

Выбор сценария кодирования

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

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

  • Мощный скрипт: Ruby-On-Rails - это очень мощный и эффективный скрипт для парсинга. Для начинающих и новичков этот язык зарекомендовал себя как мощный ресурс.
  • Надежное сообщество: Ruby поставляется вместе с сильной командой разработчиков, которые образуют надежное и очень надежное сообщество. С миллионами документаций ни один вопрос не будет для вас неразрешимым!
  • Простая установка: Процедура установки хорошо документирована и довольно проста.

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

парсинг баз

Пошаговое руководство

Прежде чем мы начнем, давайте проясним некоторые моменты. Данное руководство предназначено для пользователей Mac, если вы используете другую машину, процесс начальной настройки может немного отличаться. Во-вторых, программа использует Nokogiri, который может изменять веб-страницы в "объекты Ruby", тем самым упрощая процесс парсинга. Учитывая эти два фактора, вы можете приступать к работе над своими проектами.

В этом руководстве мы будем собирать заголовки первых 100 объявлений о продаже подержанных автомобилей на olx.

Процесс настройки

Вот основные требования для разработки полной установки для парсинга информации из Интернета с помощью Ruby.

  • На вашем компьютере, будь то настольный компьютер или ноутбук, должен быть установлен Ruby. Если вы являетесь приверженцем Mac, то половина работы уже сделана.
  • Вам понадобится текстовый редактор. Он необходим для записи команд программы. Если на вашем компьютере нет встроенного варианта, попробуйте загрузить Sublime Text. Этот текстовый редактор с захватывающими функциями и удобным управлением сделает кодирование увлекательным и интересным.
  • Еще одно необходимое условие - глубокие знания об использовании HTML и CSS. Если вы планируете освоить искусство парсинга, знание CSS и HTML будет иметь решающее значение.
  • Получите знания о Ruby. Немного информации очень важно в этом контексте. Вы можете ознакомиться с некоторыми онлайн-курсами и усовершенствовать свою базу знаний. Когда все эти процессы и факторы будут учтены, настанет время приступить к важнейшим шагам.

Шаг 1: Установка зависимостей

В процессе установки убедитесь, что вы получили полную информацию о трех полезных Ruby Gems. Эти три варианта включают в себя:

  • NokoGiri
  • HTTParty
  • Pry

Поскольку мы уже немного рассказали о Nokogiri, давайте обсудим HTTParty и Pry.  HTTParty - это драгоценный камень, который наш парсер будет использовать для отправки HTTP-запросов к страницам, которые мы собираем.

Мы будем использовать HTTParty для отправки GET-запросов, которые вернут все HTML-содержимое страницы в виде строки. Для отладки мы используем Pry, который является рубиновым гемом. Он поможет нам разобрать код веб-страницы и является важным компонентом в этой установке.

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

gem install nokogiri

gem install party

gem install pry

Шаг 2: Создание файлов парсера

Вам нужно будет создать папку с именем nokogiri_tutorial в любом удобном месте на вашем компьютере. Рабочий стол - идеальное место для этого. Следующий шаг - загрузить текстовый редактор типа "Sublime Text" или любой другой на ваш выбор и сохранить файл в этой папке под названием "web_scraper.RB". Как только вы выполните эти шаги, вы сможете работать над зависимостями.

Шаг 3: Отправка HTTP-запросов на страницу

Начните с создания переменной операции с именем 'page' и убедитесь, что она равна HTTParty GET-запросу страницы, которую мы будем парсить.

В данном случае: https://www.olx.com/all-results/q-cars/.

После этого можно ввести "Pry. start(binding)". Перейдите и найдите папку, отмеченную как файл web_scraping.Rb. Сразу же сохраните его на рабочем столе и откройте терминал, введя эту команду.

cd desktop/nokogiri_tutorial

Ваша программа веб-скрейпинга готова к внедрению. Вы можете выполнить эту команду и запустить ее:

Ruby web_scraper.RB

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

спарсить данные

Шаг 4: Переход к NokoGiri

Задача состоит в том, чтобы сначала преобразовать и изменить эти автомобильные листинги в объекты NokoGiri, поскольку это очень важно для анализа. Создание переменных очень важно, и вам придется создать новую переменную с именем "parse_page". У Nokogiri есть особый способ преобразования HTML-строк в объекты Nokogiri. Вы можете оставить Pry в нижней части кода.

Следующим шагом будет сохранение файла, содержащего команду Ruby. Pry откроется автоматически, и необходимо ввести новую переменную "parse_page". Это вернет страницу Olx в виде объекта Nokogiri.

Создайте HTML-файл в той же папке с именем 'cars.html' и скопируйте-вставьте результаты команды parse_page в этот файл. Эти отформатированные HTML-данные пригодятся в дальнейшем для справки.

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

Шаг 5: Разбор данных

Разбор данных требует элементарных знаний программирования, а также кодирования. Поскольку вы хотите извлечь тексты заголовков всех объявлений о продаже автомобилей, файл cars.html пригодится вам для перекрестной проверки. Найдите важные элементы в папке и выполните проверку с помощью инструмента 'inspect element tool', также можно просмотреть 'page source code'.

Поскольку мы обнаружили, что листинги находятся внутри div с именем класса 'content', последующие команды будут следующими:

parse_page.css('.content')

parse_page.css('.content').css('.row').css('.hdrlnk')

cars_array

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

Шаг 6: Экспорт файлов данных в CSV

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

Выйдите из Pry, если вы все еще находитесь в нем, чтобы ваш терминал находился в папке nokogiri_tutorial, которая содержит программу парсинга и файл cars.html. Теперь введите следующую команду:

touch cars.csv

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

Размышления на прощание

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