CoderCastrov logo
CoderCastrov
Программирование

Как получить все данные о продуктах из магазинов Shopify

Как получить все данные о продуктах из магазинов Shopify
просмотров
2 мин чтение
#Программирование
Table Of Content

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

    Как я это сделал -

    Несколько поисковых запросов показали мне, что магазины Shopify вернут всю свою информацию, если вы добавите /products.json в конец любого URL-адреса магазина Shopify.

    Если вы сделаете это, вы получите объект JSON, который вы можете вставить в JSON-преобразователь, такой как https://jsonformatter.org/json-pretty-print.

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

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

    Поставщик и название были указаны в объекте первого уровня, поэтому было легко извлечь их из объекта JSON. Цена находилась во вложенном массиве вариантов продукта, поэтому я извлек цену первого варианта, что было достаточно для целей прототипа. Они обычно имели разные размеры или цвета с похожими ценами.

    Для ссылки на продукт вам нужно добавить поле, называемое "handle", к URL-адресу магазина. Это легко, так как у вас уже есть базовый URL.

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

    Для изображений вам просто нужно пройти через них в списке, в котором они поступают, и извлечь атрибут src.

    Он хотел получить CSV-файл, поэтому я записал данные в файл, но в HTML-описаниях было много запятых, поэтому я создал специальный разделитель, который можно использовать для разделения столбцов при вставке файла в Excel или Google Sheets.

    О, и еще — Shopify разбивает ответы на страницы для магазинов с более чем определенным количеством продуктов, поэтому из URL-адреса — shopifystore.com/products.json, вам нужно добавить ?page=n, где n начинается с 1 и продолжается, с запросом, который в конечном итоге возвращает пустые объекты. Так что для каждой ссылки на магазин вы добавляете и увеличиваете запросы страницы, пока не начнете получать пустые объекты.

    Вот и все.

    Мой друг дал мне список магазинов, и скрипт сейчас работает и уже имеет около 16 000 продуктов в файле.

    Ссылка на GitHub, чтобы вы могли поиграть с этим скриптом.

    Если кто-то заинтересован в том, чтобы сделать это в качестве проекта по изучению программирования, я могу помочь с этим. :)

    Спасибо за чтение!