Как парсить данные с Blissy с помощью Python
Table Of Content
- Основное введение, которое можно пропустить, я скопировал из своей другой статьи
- Установка расширения
- Давайте начнем!
- Blissy pipeline
- открыть URL в браузере
- чтобы щелкнуть по найденному элементу (доступно 13 результатов...)
- чтобы ввести текст в поле ввода
- чтобы щелкнуть по найденному элементу
- чтобы щелкнуть по найденному элементу (доступно 13 результатов...)
- Получение данных
- для получения текста элемента
- для получения ссылки элемента
- для получения текста элемента
- для получения текста элемента
- открыть URL в браузере
- нажать на найденный элемент
- нажать на найденный элемент (доступно 13 результатов)
- ввести текст в поле ввода
- нажать на найденный элемент
- нажать на найденный элемент (доступно 13 результатов)
- получить текст элемента
- получить ссылку элемента
- получить текст элемента
- получить текст элемента
- Запуск этой программы
Добро пожаловать снова... Blissy - это лучшая хранящаяся в секрете тайна супермоделей, парикмахеров, экспертов по красоте и дерматологов со всего мира. Мы будем использовать 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()
Я рекомендую запустить весь ваш код до этого момента и проверить, успешно ли он выполняется, если да, то вы практически готовы продолжать!
Blissy pipeline
Далее следует интересная часть, щелкните по расширению DK, которое мы установили ранее, и нажмите "начать запись". Это определенно не будет сложной задачей, но к счастью у вас есть я здесь.
Откройте веб-сайт Blissy и добавьте ожидание в 3 секунды для загрузки веб-сайта, а затем выполните поиск по ключевому слову на веб-сайте и нажмите Enter. Чтобы добавить событие ожидания, щелкните правой кнопкой мыши на экране и выберите "ожидание" -> 3. Теперь, если вы нажмете на расширение, вы найдете код уже там в расширении, как показано ниже.
# открыть URL в браузере
driver.get('https://blissy.com/')
time.sleep(2)
Отлично! Это указывает нашему браузеру Chrome Python на этот конкретный веб-сайт, функция "time.sleep(3)" просто говорит Python подождать 3 секунды перед продолжением, это необязательно, но я все равно добавил это.
После этого расширение будет искать идентификатор с помощью driver.find_element_by_pro и выполнит клик(), событие клика щелкнет по идентификатору.
# чтобы щелкнуть по найденному элементу (доступно 13 результатов...)
driver.find_element_by_pro('g15upV7KFMhKveZ').click()
а send_keys('black') введет ключевое слово "black", а click() щелкнет по выбранной клавише.
# чтобы ввести текст в поле ввода
driver.find_element_by_pro('Zq15eJVzcevwE3A').send_keys('pillow')
# чтобы щелкнуть по найденному элементу
driver.find_element_by_pro('eXNtYAaQ80bYxD1').click()
# чтобы щелкнуть по найденному элементу (доступно 13 результатов...)
driver.find_element_by_pro('SZpl4Bg3zeeEdZP').click()
Скопируйте код из расширения и протестируйте код до этого шага...
Получение данных
Отлично! Итак, давайте продолжим запись, после ввода ключевого слова на веб-сайте Passion Planner, наведите указатель мыши на заголовок продукта, щелкните правой кнопкой мыши и выберите "Скопировать текст" для получения текста продукта.
Теперь таким же образом вы можете получить заголовок, ссылку, отзывы и цену. В расширении ваши действия будут имитированы следующим образом:
# для получения текста элемента
product_name=list_element.find_element_by_pro(‘q2e7YAeDCyaj3TW’).text
# для получения ссылки элемента
product_link=list_element.find_element_by_pro(‘SWByJcHHiCBum5v’).get_attribute(‘href’)
# для получения текста элемента
price=list_element.find_element_by_pro(‘c9qLTAE2XmX6Ukp’).text
# для получения текста элемента
reviews=list_element.find_element_by_pro(‘DJJm402Dl15gXzP’).text
Мы закончили здесь... Верьте или нет.
from selenium_pro import webdriver
import time
from selenium_pro.webdriver.common.keys import Keys
driver = webdriver.Start()
# открыть URL в браузере
driver.get(‘[https://blissy.com/'](https://blissy.com/'))
time.sleep(2)
# нажать на найденный элемент
driver.find_element_by_pro(‘3E09Noh1SlGksyi’).click()
time.sleep(1)
# нажать на найденный элемент (доступно 13 результатов)
driver.find_element_by_pro(‘g15upV7KFMhKveZ’).click()
time.sleep(1)
# ввести текст в поле ввода
driver.find_element_by_pro(‘Zq15eJVzcevwE3A’).send_keys(‘подушка’)
# нажать на найденный элемент
driver.find_element_by_pro(‘eXNtYAaQ80bYxD1’).click()
# нажать на найденный элемент (доступно 13 результатов)
driver.find_element_by_pro(‘SZpl4Bg3zeeEdZP’).click()
time.sleep(2)
# получить текст элемента
product_name = list_element.find_element_by_pro(‘q2e7YAeDCyaj3TW’).text
# получить ссылку элемента
product_link = list_element.find_element_by_pro(‘SWByJcHHiCBum5v’).get_attribute(‘href’)
# получить текст элемента
price = list_element.find_element_by_pro(‘c9qLTAE2XmX6Ukp’).text
# получить текст элемента
reviews = list_element.find_element_by_pro(‘DJJm402Dl15gXzP’).text
Запуск этой программы
Чтобы запустить эту программу, скопируйте код из расширения и сохраните его как файл .py > откройте терминал / командную строку и введите следующую команду:
python3 ПУТЬ/К/ВАШЕМУ/ФАЙЛУ.PY
Или, если вы используете среду разработки, такую как Pycharm, просто запустите программу в ней. Когда вы запустите эту программу, вы увидите, что открывается браузер Chrome, он будет ждать несколько секунд, а затем выведет точки данных в консоль Python!
Поздравляю! Я рекомендую вам поискать способы улучшить этот проект: можете ли вы добавить интерфейс, где люди могут размещать свои ссылки? Можете ли вы добавить цикл для парсинга всех ссылок и текста со всех страниц? В противном случае, вы должны гордиться собой за то, что прошли через этот учебник!