Парсим товары на сайте при помощи Python

В прошлой статье я рассказывал о том, как при помощи python и библиотеки requests получить данные по API и обработать их. В этой статье я покажу, как получить (спарсить)  данные с сайта у которого нет доступа к API. Для этого напишем скрипт на языке python, с применением библиотек requests и Beautiful Soup.

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

Beautiful Soup — библиотека для синтаксического разбора файлов HTML/XML. Она содержит набор функций и методов, которые позволяют легко найти и получить нужный элемент веб-страницы или его содержимое. Для работы с библиотекой, вы должны знать основы html и css.

Задача

Многие интернет магазины следят за ценами конкурентов и в зависимости от конкурентов корректируют цены на свои товары. Например, у нас интернет магазин смартфонов. Чтобы сэкономить время менеджера создадим скрипт, который будет парсить товары сайта dns-shop.ru из раздела смартфоны и сохранять данные в csv файл.

dns_shop

Сохранять в csv будем следующие параметры: Название товара, Цена, Ссылка на товар

Таким образом мы сэкономим время менеджера на выписывание товаров в эксель.

Алгоритм работы скрипта:

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

Ниже идет код с подробными комментариями, который решает эту задачу

Открываем получившийся файл в эксель и выполняем разделение текста по столбцам.

text-stolb

В итоге получаем таблицу из 3 столбцов: товар, цена, ссылка на товар

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