Python — парсим Excel прайс от поставщика
Задача
Ежедневно обновлять цены и наличие товаров с прайса поставщика. Скачать прайс можно только по ссылке, которую указал поставщик.
Реальный образец этого прайса:
Решение
Написать скрипт, который будет ежедневно переходить по ссылке и скачивать обновлённый прайс. Далее скрипт получает из прайса только артикул, цену и наличие. И, наконец, выгружает эти данные в файл, специально для импорта в интернет-магазин.
В проекте используем библиотеки:
- requests – для скачивания прайса
- openpyxl — для работы с Excel
Документация openpyxl
Внимание! Библиотека не работает со старым форматом XLS, только — XLSX.
Видео на YouTube по работе с библиотекой
Импортируем библиотеки
import requests
from openpyxl import load_workbook
Скачиваем файл
Напишем функцию get_file()
Мы не знаем, какого размера файл поставщика. Может быть пару мегабайт. А может быть и пару десятков. Особенно прайс с фотографиями может быть очень тяжёлым. Поэтому скачивать будем небольшими частями. Для этого используем iter_content(4096)
, где 4096 — размер одной части в байтах. В данном случае — 4 килобайта.
def get_file(url):
r = requests.get(url, stream=True)
filename = url.split('/')[-1]
with open(filename, 'wb') as file:
for chunk in r.iter_content(4096):
file.write(chunk)