Как получить данные с сайта Gymshark с помощью Python
Table Of Content
- открыть URL в браузере
- нажать на элемент (Поиск)
- ввести текст в поле ввода
- нажать клавишу Enter
- получить текст элемента
- получить текст элемента
- получить текст элемента
- получить ссылку элемента
- открыть URL в браузере
- нажать на элемент (Поиск)
- ввести текст в поле ввода
- нажать клавишу Enter
- получить текст элемента
- получить текст элемента
- получить текст элемента
- получить ссылку элемента
Добро пожаловать снова…. Gymshark - это британский бренд фитнес-одежды и аксессуаров, производитель и розничный продавец с головным офисом в Солихалле, Англия. Основанная в июне 2012 года, Gymshark создает и распространяет свою собственную линейку спортивной одежды. В этом проекте мы будем использовать Python, поэтому, если у вас нет опыта работы с Python, рекомендуется освежить знания этого языка.
Как всегда, перед парсингом данных с веб-страницы нам нужно определить, какие именно данные мы хотим получить. После просмотра страницы я сразу увидел множество различных данных, которые можно получить. В этом проекте мы будем парсить название продукта, ссылку на продукт и цену продуктов на Gymshark.
Давайте начнем!
Основные введение, которое вы, вероятно, можете пропустить, я скопировал из своей другой статьи
Прежде всего, нам понадобится установленный Python, убедитесь, что у вас установлен Python и какая-то среда разработки (IDE). Selenium pro - это пакет для парсинга веб-страниц, который позволяет нам имитировать веб-браузер с помощью Python, поэтому лучше иметь представление о парсинге веб-страниц. Пакет Selenium pro - https://pypi.org/project/selenium-pro/
pip install selenium-pro
Установка расширения
Скачайте генератор автокода Selenium из 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()
Я рекомендую запустить весь ваш код до этого момента и проверить, успешно ли он выполняется. Если да, то вы практически готовы продолжать!
Пайплайн GymsharkСледующий шаг - это веселая часть, нажмите на расширение DK, которое мы установили ранее, и нажмите "начать запись", это определенно не будет сложной задачей, но, к счастью, у вас есть я, чтобы помочь.
Откройте веб-сайт Gymshark и добавьте задержку в 3 секунды, чтобы сайт загрузился, а затем выполните поиск по ключевому слову на веб-сайте и нажмите Enter. Чтобы добавить задержку, щелкните правой кнопкой мыши на экране и выберите "wait" -> 3. Теперь, если вы нажмете на расширение, вы увидите код уже там в расширении, как показано ниже.
# открыть URL в браузере
driver.get('https://www.gymshark.com/')
time.sleep(3)
Отлично! Это направит наш браузер Chrome Python на указанный выше веб-сайт, функция "time.sleep(3)" просто указывает Python подождать 3 секунды перед продолжением, это необязательно, но я все равно добавил это.
После этого расширение будет искать идентификатор с помощью driver.find_element_by_pro и выполнит click(), событие click нажмет на идентификатор
# нажать на элемент (Поиск)
driver.find_element_by_pro('5tmzJ83ZZZ8PH3o').click_pro()
а send_keys('top') введет ключевое слово top, а send_keys(Keys.ENTER) нажмет Enter
# ввести текст в поле ввода
driver.find_element_by_pro('ax0mJydMl0BPHZQ').type('top')
# нажать клавишу Enter
driver.switch_to.active_element.type('Enter')
Скопируйте код из расширения и протестируйте код до этого момента.
Получение данныхОтлично! Теперь давайте продолжим запись, после ввода ключевого слова на веб-сайте Gymshark наведите курсор на заголовок продукта, щелкните правой кнопкой мыши и выберите "scrape" -> "text", чтобы получить текст продукта.
Теперь, аналогичным образом, вы можете получить ссылку, описание продукта и также цену. В расширении ваше действие будет имитировано следующим образом:
# получить текст элемента
price = list_element.find_element_by_pro('lIyi7rYzvutM39n').text
# получить текст элемента
name = list_element.find_element_by_pro('qvfVjVoBAdkduvA').text
# получить текст элемента
title = list_element.find_element_by_pro('hlhxiUDm0FTWR0O').text
# получить ссылку элемента
link = list_element.find_element_by_pro('LL1mwbzlqD67kmq').get_attribute('href')
Мы закончили.. Верите или нет
Полный кодВ случае, если вы застряли или запутались, вот весь код для этого проекта:
from selenium_pro import webdriver
import time
from selenium_pro.webdriver.common.keys import Keys
driver = webdriver.Start()
# открыть URL в браузере
driver.get('https://www.gymshark.com/')
time.sleep(3)
# нажать на элемент (Поиск)
driver.find_element_by_pro('5tmzJ83ZZZ8PH3o').click_pro()
# ввести текст в поле ввода
driver.find_element_by_pro('ax0mJydMl0BPHZQ').type('top')
# нажать клавишу Enter
driver.switch_to.active_element.type('Enter')
time.sleep(3)
# получить текст элемента
price = list_element.find_element_by_pro('lIyi7rYzvutM39n').text
# получить текст элемента
name = list_element.find_element_by_pro('qvfVjVoBAdkduvA').text
# получить текст элемента
title = list_element.find_element_by_pro('hlhxiUDm0FTWR0O').text
# получить ссылку элемента
link = list_element.find_element_by_pro('LL1mwbzlqD67kmq').get_attribute('href')
Запуск этой программыТеперь, чтобы запустить эту программу, скопируйте код из расширения и сохраните его как файл .py > откройте ваш терминал / командную строку и введите следующую команду:
python3 ПУТЬ/К/ВАШЕМУ/ФАЙЛУ.PY
Или если вы используете среду разработки, такую как Pycharm, просто запустите программу в ней. При запуске этой программы вы увидите, что открывается браузер Chrome, он будет ждать несколько секунд, а затем выведет данные в консоль Python!
Поздравляю! Я рекомендую поискать способы улучшить этот проект: можете ли вы добавить интерфейс, где люди могут размещать свои ссылки? Можете добавить цикл для парсинга всех ссылок и текста со всех страниц. В противном случае, вы должны гордиться собой за то, что прошли этот учебник!