CoderCastrov logo
CoderCastrov
Selenium

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

Как парсить данные с Thursday Boots с помощью Python
просмотров
3 мин чтение
#Selenium

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

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

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


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

Прежде всего, нам понадобится установить Python, убедитесь, что у вас установлен Python и некоторая среда разработки. 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()

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

Thursday Boots Pipeline

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

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

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

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

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

# нажать на поле ввода
driver.find_element_by_pro('nQUKMduQZx2HAE5').click()

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

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

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

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

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

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

# для получения текста элемента
название_продукта = элемент_списка.find_element_by_pro(‘8bccEa5T3nCbTwi’).text
# для получения ссылки на элемент
ссылка_на_продукт = элемент_списка.find_element_by_pro(‘r6e1Ayq243o40qq’).get_attribute(‘href’)
# для получения текста элемента
цвета = элемент_списка.find_element_by_pro(‘KvSBmFxdHqh4KUG’).text
# для получения текста элемента
цена = элемент_списка.find_element_by_pro(‘S8DQK1LUJ7tZOb7’).text

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

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
# чтобы нажать на поле ввода
driver.find_element_by_id('nQUKMduQZx2HAE5').click()
# чтобы ввести текст в поле ввода
driver.find_element_by_id('UBGLleqVR98ePPc').send_keys('черный')
# нажать клавишу Enter
driver.switch_to.active_element.send_keys(Keys.ENTER)
# получить текст элемента
product_name = list_element.find_element_by_id('8bccEa5T3nCbTwi').text
# получить ссылку элемента
product_link = list_element.find_element_by_id('r6e1Ayq243o40qq').get_attribute('href')
# получить текст элемента
colours = list_element.find_element_by_id('KvSBmFxdHqh4KUG').text
# получить текст элемента
price = list_element.find_element_by_id('S8DQK1LUJ7tZOb7').text