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

Как парсить данные с Bychari с использованием Python

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

Снова привет.... Простые, сексуальные, вечные украшения. Сделано в Лос-Анджелесе "BYCHARI, бренд, который проник в повседневную жизнь самых желанных девушек. Мы будем использовать Python, поэтому, если у вас нет опыта работы с Python, я рекомендую освежить свои знания по этому языку.

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

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

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

Прежде всего, нам понадобится установленный 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()

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

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

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

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

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

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

# нажать на найденный элемент
driver.find_element_by_pro('rpEHPElxyWwi8AM').click()

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

# ввести содержимое в поле ввода
driver.find_element_by_pro(‘eOkqZDBRMNqlk6d’).send_keys(‘chain’)
# нажать клавишу Enter
driver.switch_to.active_element.send_keys(Keys.ENTER)

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

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

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

# получить текст элемента
 title=list_element.find_element_by_pro(‘kocfN8I0LjMY9jz’).text
 # получить текст элемента
 price=list_element.find_element_by_pro(‘dXyrItkUOFmbern’).text
 # получить ссылку элемента
link=list_element.find_element_by_pro(‘KsXvNd3aMc27MEy’).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://bychari.com/'](https://bychari.com/'))
time.sleep(3)
# нажать на найденный элемент
driver.find_element_by_pro(‘rpEHPElxyWwi8AM’).click()
# ввести содержимое в поле ввода
driver.find_element_by_pro(‘eOkqZDBRMNqlk6d’).send_keys(‘chain’)
# нажать клавишу Enter
driver.switch_to.active_element.send_keys(Keys.ENTER)
time.sleep(3)
# получить текст элемента
 title=list_element.find_element_by_pro(‘kocfN8I0LjMY9jz’).text
 # получить текст элемента
 price=list_element.find_element_by_pro(‘dXyrItkUOFmbern’).text
 # получить ссылку элемента
link=list_element.find_element_by_pro(‘KsXvNd3aMc27MEy’).get_attribute(‘href’)

 

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

python3 PATH/TO/YOUR/.PY/FILE

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

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