Как парсить товары с Яндекс Маркет и интернет-магазинов. Парсер контента сайтов Content Downloader и его настройка

Logo
Как парсить товары с Яндекс Маркет и интернет-магазинов. Парсер контента сайтов Content Downloader и его настройка

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

Использовать для этого мы будем программу Content Downloader (чтобы получить скидку 5%, укажите в примечаниях платежа мой идентификатор — Dmitriy), которую я приобрел очень давно, но до сих пор так и не удосужился написать о ней. Content Downloader — это универсальный парсер контента сайтов, который с успехом может быть использован как парсер Яндекс Маркета или парсер товаров интернет-магазинов. Однако Яндекс Маркетом и интернет-магазинами работа программы не ограничивается. Используя широкие настройки, ее можно настроить для работы с абсолютно любым сайтом.

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

  1. Весь процесс работы можно разделить на 5 этапов:
  2. Установка и активация программы (рассматриваться не будет).
  3. Настройка регионов в Яндекс Маркете.
  4. Получение ссылок на товары.
  5. Непосредственно парсинг товаров.
  6. Проверка результатов.

Настройка регионов в Яндекс Маркет

Первое, что нужно сделать, это установить нужный регион в Яндекс Маркете. Для этого запускам программу и жмем на кнопку «авторизация/cookies».

Content Downloader - авторизация/cookies

После этого вводим в адресную строку «market.yandex.ru», жмем «Enter», переходим на сайт Яндекс Маркета и авторизируемся, используя стандартную форму авторизации.

Content Downloader - авторизация в Яндекс Маркет

Далее в правом верхнем углу сразу под именем пользователя ищем ссылку на регион и при необходимости изменяем значение. После этого жмем на кнопку «передать cookies из webbrowser».

Content Downloader - изменение региона в Яндекс Маркет

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

Парсинг ссылок на товары в Яндекс Маркет

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

  1. Выбираем нужный раздел Яндекс Маркета.
  2. Определяем часть ссылки, отвечающую за постраничную навигацию, и создаем шаблон ссылки страницы выбранного раздела.
  3. Парсим ссылки на страницы раздела при помощи шаблона, полученного на втором шаге (п. 2).
  4. Определяем шаблон ссылок для товаров (повторяющуюся часть).
  5. Парсим ссылки на страницы товаров Яндекс Маркета при помощи страниц разделов (п. 3) и шаблона ссылок на страницы товаров (п. 4).

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

Раздел холодильников в Яндекс Маркет

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

Параметр, отвечающий за постраничную навигацию в Яндекс Маркете

Копируем ссылку на страницу раздела и вставляем ее в поле шаблона программы Content Downloader, как это показано на изображении ниже. Не забываем при этом изменить значение параметра постраничной навигации на {num}, как это написано сразу над полем ввода.

Content Downloader - шаблон ссылки на страницу раздела Яндекс Маркет

После этого нам необходимо сгенерировать ссылки на страницы раздела. Для этого выставляем диапазон от нуля до 5000 (4839 товаров по 10 шт. на странице), а также шаг, который равен 10. Я выбрал именно 10, так как по умолчанию в аккаунте на странице отображается именно 10 элементов. Если в настройках указано другое значение – выставьте его.

Content Downloader - диапазон парсинга ссылок

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

Content Downloader - запуск парсинга ссылок

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

Content Downloader - окно ссылок на страницы раздела

Для получения ссылок на товары, нам необходимо определить их шаблон. Для этого переходим на сайт Яндекс Маркета, выбираем товар на странице раздела и копируем его ссылку.

Яндекс Маркет - копируем ссылку на страницу товара

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

Content Downloader - переход к фильтрам ссылок

В открывшемся окне отмечаем чекбокс «задать шаблон для ссылок (используйте * как маску» и вводим в поле ниже часть ссылки, ведущей на страницу товара, которая не изменяется (легко проверить, сравнив несколько ссылок на страницы товаров). В нашем случае шаблоном будет «market.yandex.ua/model.xml?modelid=». Как вы заметили, «http://» мы тоже удаляем. Оставляем только шаблон. После этого жмем на кнопку «готово».

Content Downloader - настройка фильтров ссылок

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

Content Downloader - проверка корректности работы фильтров ссылок

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

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

Итак, с шаблонами ссылок страниц товаров мы разобрались. Теперь можно переходить к завершающей части данного шага – парсингу ссылок на страницы товаров Яндекс Маркет. Для этого жмем на кнопку «сканер сайтов (сбор ссылок с сайта)» в главном меню программы.

Content Downloader - кнопка сбора ссылок с сайта

В открывшемся окне отмечаем чекбокс «не пополнять очередь», жмем кнопку «добавить ссылки из списка парсинга (из главного окна программы)», после чего жмем «начать/продолжить сканирование».

Content Downloader - парсинг ссылок на страницы товаров

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

Content Downloader - копирование ссылок в главное окно программы

Для проверки полученных ссылок достаточно кликнуть правой кнопкой мыши по ссылке и выбрать пункт «посмотреть страничку в интернете». В результате откроется окно браузера с выбранным вами товаром.

Content Downloader - проверка ссылок на страницы товаров

В нашем случае в списке программы 4839 элементов. Столько же отображалось товаров на сайте Яндекс Маркет во время начала парсинга, следовательно, парсинг ссылок на товары прошел успешно.

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

Парсинг контента (товаров) с Яндекс Маркет

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

Content Downloader - настройка потоков и таймингов

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

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

Content Downloader - переход к списку границ парсинга

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

Content Downloader - кнопка настройки первой границы парсинга

В результате этого откроется окно с исходным кодом страницы товара. Для большего удобства работы переходим в двухоконный режим, нажав на кнопку «браузер (открыть/закрыть)».

Content Downloader - переход в двухоконный режим

Далее выбираем нужную нам часть страницы и при помощи поиска ищем соответствующий ей участок в исходном коде страницы. Для перехода между совпадениями используем сочетание клавиш CTRL+F или соответствующую кнопку в меню программы.

Content Downloader - определение участков кода

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

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

Content Downloader - добавление границ парсинга названия товара

Кроме того, вы можете выделить нужный участок кода, скопировать его или ввести вручную в нужное поле программы. Разницы здесь никакой нет.

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

Content Downloader - изменение названия границы парсинга

После завершения всех операций жмем на кнопку «готово».

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

Content Downloader - кнопка добавления второй границы

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

Content Downloader - добавление границы парсинга производителя товара

Для усложнения задачи мы используем расширенные границы. Поскольку между ними присутствует лишний HTML код, то чтобы избавиться от него нам потребуется совершить дополнительные действия. Для этого переходим в меню дополнительных настроек (кнопка в правом верхнем углу окна программы) и отмечаем чекбокс «htm to text».

Content Downloader - дополнительные настройки границ парсинга

Далее в списке границ отмечаем чекбокс «парсить с границами».

Content Downloader - парсить с границами

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

Content Downloader - проверка корректности границ парсинга

Как видно с изображения, парсер контента работает корректно. Теперь можно переходить к завершающей части статьи и рассмотреть процесс парсинга изображений.

Парсинг картинок в Яндекс Маркет

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

Content Downloader - кнопка добавления границы парсинга изображений

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

Content Downloader - включение скриптов

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

Content Downloader - поиск кода вывода изображений в Яндекс Маркет

Далее в качестве первой границы выбираем общую часть ссылки (повторяющуюся) вместе с атрибутом href. В качестве второй границы указываем закрывающие кавычки. Также не забываем дать название границе для большего удобства работы.

Content Downloader - добавление границы парсинга изображений

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

Content Downloader - дополнительные настройки границы парсинга изображений

Поскольку в Яндекс Марет изображения выводятся скриптом, то нам необходимо активировать соответствующую настройку в настройках парсера. Заодно настроим и формирование названий изображений. Для этого переходим во вкладку «контент» и жмем по кнопке «дополнительные параметры загрузки изображений», попутно отметив чекбокс «без адресов», чтобы избавиться от ссылок в именах файлов.

Content Downloader - дополнительные параметры загрузки изображений

Далее возвращаемся к списку границ парсинга и жмем на кнопку «шаблон вывода».

Content Downloader - кнопка шаблона вывода

Выбираем границу, отвечающую за парсинг изображений, кликаем правой кнопкой мыши и жмем «<NIMG>…</NIMG», после чего закрываем окно и возвращаемся к списку границ парсинга.

Content Downloader - редактор шаблона вывода

Теперь для проверки работы парсера Яндекс Маркета достаточно дважды кликнуть по ссылке в списке программы.

Content Downloader - проверка работы парсера

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

Content Downloader - настройки сохранения данных

Здесь мы можем настроить путь к папке назначения, в каком виде сохранять данные (csv, htm, txt, php), а также другие параметры. В данном случае я лишь изменил путь к папке и установил сохранение каждого товара в отдельный файл для большего удобства работы. Вы же можете сохранять данные, например, в формате CSV. В этом случае необходимо будет настроить параметры сохранения в редакторе шаблона вывода (см. выше).

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

Content Downloader - кнопка запуска парсинга

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

Content Downloader - результаты работы парсера

На этом данная статья подошла к концу. Удачи и успеха в создании сайтов!

Обнаружили ошибку? Выделите ее и нажмите Ctrl+Enter

Оставить комментарий

отменить ответ