Скрипт был написан в рамках реальной задачи для АШАН. Целью являются выгрузка артикулов и наименований товаров с сайта для формирования актуальной базы по товарам на сайте.
Задачи:
- Создать срипт для парсинга сайта;
- Выгрузить массив данных с артикулами и наименованиями товаров;
- Выгрузить существующую базу по товарам с помощью SQL;
- Объединенить таблицы для добавления навигационных столбцов;
- Загрузка полученного результата в базу.
Проект выполнен с нуля и предназначен только для выгрузки определенных данных.
Результаты:
- Создан рабочий код для конкретной задачи;
- Финальные данные используются при проведении маркетинговых акций. Можно быстро получить данные по требуемым категориям.
Полный скрипт расположен в файле "Parsing_auchan.ipynb".
Стэк:
- Python
- SQL
- Parsing
- HTML
import requests
from bs4 import BeautifulSoup
import pandas as pd
import math
import time
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
import psycopg2
from sqlalchemy import create_engine
import ipywidgets as wi
from ipywidgets import IntProgress
from IPython.display import display
from ipywidgets import Layout
Полученные выгрузки не выкладываются в общий доступ из-за конфеденциальности. Также скрыты все доступы для подключения к базам.
Код оптимизирован путем добавления класса и методов для выгрузки разных типов категорий с сайта. В класс не входят функции для оформления кода и загрузки базы в Dbeaver.
Для подключения использовалась бибилотека BeautifulSoup. Все этапы получения данных разделены на методы, чтобы весь процесс был более отслеживаемым и наглядным.
В связи с тем, что процесс парсинга может занимать довольно длительное время, у каждого метода в классе присутствует виджет с процентами загрузки данных, а также простой подсчет оставшегося времени получения выгрузки.
Итоговая таблица, загружаемая обратно в базы данных, выглядит следующим образом: