CoderCastrov logo
CoderCastrov
Питон

Как парсить данные с Beyond Yoga с помощью Python

Как парсить данные с Beyond Yoga с помощью Python
просмотров
4 мин чтение
#Питон

Добро пожаловать снова... Активная одежда Beyond Yoga разработана для тела каждой женщины. Здесь вы найдете женские брюки, леггинсы, топы, низы, бра и многое другое. Мы будем использовать Python, поэтому, если у вас нет опыта работы с этим языком, рекомендуется освежить свои знания по нему.

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

Давайте начнем!

Основное введение, которое можно пропустить, я скопировал из своей другой статьи

Прежде всего, нам понадобится установить Python, убедитесь, что у вас установлен Python и какая-то IDE. Selenium pro - это пакет для парсинга веб-страниц, который позволяет нам имитировать веб-браузер с помощью Python, лучше иметь более глубокое понимание парсинга веб-страниц. Пакет Selenium pro - https://pypi.org/project/selenium-pro/

pip install selenium-pro

Установка расширения

Загрузите Selenium Auto Code Generator из Chrome Web Store, вместо копирования и вставки xpath это инструмент поможет и упростит процесс, без необходимости копирования и вставки. Загрузить отсюда - https://chrome.google.com/webstore/detail/selenium-auto-code-genera/ocimgcpcnobcnmclomhhmjidgoiekeaf/related

Приступим!

Теперь, когда мы настроили наше окружение Python, давайте откроем пустой скрипт Python. Импортируем пакет Selenium pro, который вы, надеюсь, предварительно установили в предыдущем абзаце (просто выполните pip install selenium-pro). После установки импортируйте следующие пакеты:

from selenium_pro import webdriver
import time
from selenium_pro.webdriver.common.keys import Keys

Мы используем браузер Google Chrome в качестве нашего графического интерфейса, но вы можете использовать другие браузеры внутри Selenium pro, если хотите использовать другой браузер, пожалуйста, используйте его! Убедитесь, что соответствующий браузер установлен на вашем компьютере.

Теперь, внутри Selenium pro, нам нужно определить наш веб-браузер, поэтому давайте сделаем это с помощью следующей строки кода:

driver = webdriver.Start()

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

Beyond Yoga Pipeline

Далее следует интересная часть, нажмите на расширение DK, которое мы ранее установили, и нажмите "начать запись". Это определенно не будет сложной задачей, но к счастью у вас есть я.

Откройте веб-сайт Beyond Yoga и добавьте ожидание в 3 секунды для загрузки веб-сайта. Затем выполните поиск ключевого слова на веб-сайте и нажмите Enter. Чтобы добавить ожидание, щелкните правой кнопкой мыши на экране, затем выберите "ожидание" -> 3. Теперь, если вы нажмете на расширение, вы увидите следующий код в расширении.

# открыть URL в браузере
driver.get('https://beyondyoga.com/')

Отлично! Это указывает нашему браузеру Chrome в Python открыть указанный выше веб-сайт. Функция "time.sleep(3)" просто указывает Python подождать 3 секунды перед продолжением работы. Это необязательно, но я все равно добавил это.

После этого расширение будет искать идентификатор с помощью driver.find_element_by_pro и выполнит клик(), событие клика нажмет на идентификатор.

# нажать на найденный элемент (Поиск)
driver.find_element_by_pro('z6QJXkPgKV0TmUP').click()
time.sleep(1)
# нажать на поле ввода
driver.find_element_by_pro('UpiXqmZZqnVuGOl').click()

send_keys('pant') введет ключевое слово "pant", а send_keys(Keys.ENTER) нажмет клавишу Enter.

# ввести текст в поле ввода
driver.find_element_by_pro('WsJP6XmtSHuzZFL').send_keys('pant')
# нажать клавишу Enter
driver.switch_to.active_element.send_keys(Keys.ENTER)
time.sleep(2)

Скопируйте код из расширения и протестируйте код до этого момента...

Получение данных

Отлично! Итак, давайте продолжим запись, после ввода ключевого слова на сайте Passion Planner, наведите курсор на заголовок продукта, щелкните правой кнопкой мыши и выберите "Скопировать" -> "Текст" для получения текста продукта.

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

# для получения текста элемента
product_name = list_element.find_element_by_pro('IPmqsCGJX5vjIO1').text
# для получения ссылки на элемент
product_link = driver.find_element_by_pro('2iqJov36TG86k0A').get_attribute('href')
# для получения текста элемента
price = list_element.find_element_by_pro('EDIjAu8AbekurUJ').text

Мы закончили здесь.. Верьте или нет.

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
# открыть URL в браузере
driver.get('https://beyondyoga.com/')
# нажать на элемент (Поиск)
driver.find_element_by_id('search').click()
time.sleep(1)
# нажать на поле ввода
driver.find_element_by_id('search').click()
# ввести текст в поле ввода
driver.find_element_by_id('search').send_keys('футболка')
# нажать клавишу Enter
driver.switch_to.active_element.send_keys(Keys.ENTER)
time.sleep(2)
# получить текст элемента
product_name = driver.find_element_by_class_name('product-name').text
# получить ссылку элемента
product_link = driver.find_element_by_class_name('product-link').get_attribute('href')
# получить текст элемента
price = driver.find_element_by_class_name('product-price').text

Запуск этой программы

Чтобы запустить эту программу, скопируйте код из расширения и сохраните его как файл .py > откройте терминал / командную строку и введите следующую команду:

python3 ПУТЬ/К/ВАШЕМУ/ФАЙЛУ.PY

Или, если вы используете среду разработки, такую как Pycharm, просто запустите программу в ней. Когда вы запустите эту программу, вы увидите, что открывается браузер Chrome, он подождет несколько секунд, а затем выведет точки данных в консоль Python!

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