CoderCastrov logo
CoderCastrov
Автоматизация

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

Как спарсить данные с G FUEL с помощью Python
просмотров
4 мин чтение
#Автоматизация

Добро пожаловать снова.... G Fuel (стилизовано как G FUEL) - это бренд напитков с кофеином, продаваемых компанией Gamma Labs, с главным офисом в Уэст-Бабилон, Нью-Йорк. Он рекламируется как добавка для гейминга, которая, якобы, повышает концентрацию и ускоряет реакцию. Мы будем использовать Python, поэтому, если у вас нет опыта работы с Python, я рекомендую освежить свои знания по этому языку.

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

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

Основное введение, которое можно пропустить

Прежде всего, нам понадобится установить 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 в качестве нашего GUI, но вы можете использовать другие браузеры внутри Selenium pro, если хотите использовать другой браузер, пожалуйста, используйте его! Убедитесь, что нужный браузер установлен на вашем компьютере.

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

driver = webdriver.Start()

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

G Fuel Pipeline

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

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

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

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

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

# нажать на найденный элемент
driver.find_element_by_pro(‘jGq4llwejzwbJ3d’).click_pro()

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

# ввести текст в поле ввода
driver.find_element_by_pro(‘iRgFQMw1AKG7F8n’).type(‘ca’)
# ввести текст в поле ввода
driver.find_element_by_pro(‘hMEHpEGt5NqrIx6’).type(‘n’)
# ввести текст в поле ввода
driver.find_element_by_pro(‘sQaNO0IUcQu38du’).type(‘s’)
# нажать клавишу Enter
driver.switch_to.active_element.type(‘Enter’)

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

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

Отлично! Теперь давайте возобновим запись. После ввода ключевого слова на веб-сайте Gfuel наведите курсор на название продукта, щелкните правой кнопкой мыши и выберите "scrape" -> "text", чтобы получить текст продукта.

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

# получить текст элемента
title = list_element.find_element_by_pro(‘b5oLO7fOIC8xpYm’).text
# получить текст элемента
price = list_element.find_element_by_pro(‘6sdolD5ejyJp3p2’).text
# получить ссылку элемента
link = list_element.find_element_by_pro(‘YLJyFKkM7vxhha7’).get_attribute(‘href’)
# получить текст элемента
name = list_element.find_element_by_pro(‘vy3CTNKsOFq5hTN’).text

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

Полный код

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

from selenium_pro import webdriver
import time
from selenium_pro.webdriver.common.keys import Keys
driver = webdriver.Start()
# открыть URL в браузере
driver.get(‘[https://gfuel.com/'](https://gfuel.com/'))
time.sleep(3)
# нажать на найденный элемент
driver.find_element_by_pro(‘jGq4llwejzwbJ3d’).click_pro()
# ввести текст в поле ввода
driver.find_element_by_pro(‘iRgFQMw1AKG7F8n’).type(‘ca’)
# ввести текст в поле ввода
driver.find_element_by_pro(‘hMEHpEGt5NqrIx6’).type(‘n’)
# ввести текст в поле ввода
driver.find_element_by_pro(‘sQaNO0IUcQu38du’).type(‘s’)
# нажать клавишу Enter
driver.switch_to.active_element.type(‘Enter’)
time.sleep(3)
# получить текст элемента
title = list_element.find_element_by_pro(‘b5oLO7fOIC8xpYm’).text
# получить текст элемента
price = list_element.find_element_by_pro(‘6sdolD5ejyJp3p2’).text
# получить ссылку элемента
link = list_element.find_element_by_pro(‘YLJyFKkM7vxhha7’).get_attribute(‘href’)
# получить текст элемента
name = list_element.find_element_by_pro(‘vy3CTNKsOFq5hTN’).text

Запуск программы

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

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

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

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