CoderCastrov logo
CoderCastrov
Парсинг

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

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

Добро пожаловать снова... BALR. - голландский бренд, основанный в 2013 году футболистом Деми де Зеувом и интернет-предпринимателями. Этот бренд известен своими дизайнами в черно-белых тонах. BALR. стремится сделать жизнь профессионального футболиста доступной для широкой аудитории. Мы будем использовать 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()

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

Пайплайн Balr

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

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

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

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

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

# щелкнуть по найденному элементу
driver.find_element_by_pro('dWz997cGM9hITaP').click()

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

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

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

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

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

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

# для получения текста элемента
product_name = list_element.find_element_by_pro('QURqWYc3DlxqO8S').text
# для получения ссылки элемента
product_link = list_element.find_element_by_pro('kIaqAjQU9WBbI8s').get_attribute('href')
# для получения текста элемента
price = list_element.find_element_by_pro('b9IQhHxfhlEL0xD').text

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

Полный код В случае, если вы застряли или запутались, вот весь код для этого проекта:

from selenium_pro import webdriver
import time
from selenium_pro.webdriver.common.keys import Keys
driver = webdriver.Start()
# для открытия URL в браузере
driver.get('https://www.balr.com/')
time.sleep(3)
# для нажатия на найденный элемент
driver.find_element_by_pro('dWz997cGM9hITaP').click()
# для нажатия на поле ввода
driver.find_element_by_pro('ihcozJB5KJycEFt').click()
# для ввода содержимого в поле ввода
driver.find_element_by_pro('nVo5GxxkKlOkuvC').send_keys('ball')
# нажать клавишу Enter
driver.switch_to.active_element.send_keys(Keys.ENTER)
# для получения текста элемента
product_name = list_element.find_element_by_pro('QURqWYc3DlxqO8S').text
# для получения ссылки элемента
product_link = list_element.find_element_by_pro('kIaqAjQU9WBbI8s').get_attribute('href')
# для получения текста элемента
price = list_element.find_element_by_pro('b9IQhHxfhlEL0xD').text

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

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

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

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

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