Как спарсить данные с Coconut Lane с помощью python
Table Of Content
- Базовое введение, которое можно пропустить, я скопировал из своей другой статьи
- Установка расширения
- Давайте начнем!
- Coconut Lane Pipeline
- открыть URL в браузере
- кликнуть на найденный элемент
- кликнуть на найденный элемент
- кликнуть на найденный элемент
- кликнуть на поле ввода
- ввести текст в поле ввода
- нажать клавишу Enter
- Получение данных
- для получения текста элемента
- для получения ссылки элемента
- для получения текста элемента
- Полный код
- открыть URL в браузере
- нажать на найденный элемент
- нажать на найденный элемент
- нажать на найденный элемент
- нажать на поле ввода
- ввести текст в поле ввода
- нажать клавишу Enter
- получить текст элемента
- получить ссылку элемента
- получить текст элемента
- Запуск этой программы
Добро пожаловать снова... Когда компания начинала свою работу, основное внимание не уделялось тому, что мы продаем или куда мы хотим прийти, а тому, что представляет собой бренд. Основатели хотели вдохновить и мотивировать молодых девушек следовать своим мечтам. Создание платформы в социальных сетях, которая помогла бы распространять позитив и поощрять это, была нашей главной целью! Мы будем использовать 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()
Я рекомендую запустить весь ваш код до этого момента и проверить, успешно ли он выполняется, если да, то вы практически готовы продолжать!
Coconut Lane Pipeline
Следующий шаг - включите расширение DK, которое мы установили ранее, и нажмите "начать запись". Это определенно не будет сложной задачей, но к счастью у вас есть я, чтобы помочь.
Откройте веб-сайт Coconut Lane и добавьте ожидание в 3 секунды для загрузки веб-сайта. Затем выполните поиск ключевого слова на веб-сайте и нажмите Enter. Чтобы добавить ожидание, щелкните правой кнопкой мыши на экране и выберите "ожидание" -> 3. Теперь, если вы нажмете на расширение, вы увидите следующий код в расширении:
# открыть URL в браузере
driver.get('https://coconut-lane.com/?_atid=ihnGM27gubEUv4hvqEYUStXeR6jrmo')
time.sleep(3)
Отлично! Это указывает нашему браузеру Chrome Python на конкретный веб-сайт выше. Функция "time.sleep(3)" просто говорит Python подождать 3 секунды перед продолжением, это необязательно, но я все равно добавил это.
После этого расширение будет искать Id с помощью driver.find_element_by_pro и выполнит клик(), событие клика кликнет по Id.
# кликнуть на найденный элемент
driver.find_element_by_pro('0oaXP6AkovMqDIL').click()
# кликнуть на найденный элемент
driver.find_element_by_pro('dxkzxKHtIZiU7CW').click()
# кликнуть на найденный элемент
driver.find_element_by_pro('BLyAcqktr1G4Up9').click()
time.sleep(1)
# кликнуть на поле ввода
driver.find_element_by_pro('iR2BpQIJnOhKsEu').click()
и send_keys('red') введет ключевое слово "red", а send_keys(Keys.ENTER) нажмет Enter.
# ввести текст в поле ввода
driver.find_element_by_pro('TumEJUMaDXu52GO').send_keys('red')
# нажать клавишу Enter
driver.switch_to.active_element.send_keys(Keys.ENTER)
time.sleep(2)
Скопируйте код из расширения и протестируйте код до этого момента.
Получение данных
Отлично! Итак, давайте продолжим запись, после ввода ключевого слова на веб-сайте Passion Planner, наведите указатель мыши на заголовок продукта, щелкните правой кнопкой мыши и выберите "Скопировать текст" для получения текста продукта.
Теперь, аналогичным образом вы можете получить заголовок, ссылку, отзыв и цену. В расширении ваше действие будет имитировано следующим образом:
# для получения текста элемента
product_name = list_element.find_element_by_pro('zy18qaIFshyjNHS').text
# для получения ссылки элемента
product_link = list_element.find_element_by_pro('2wgntahLCgeJ9LA').get_attribute('href')
# для получения текста элемента
price = list_element.find_element_by_pro('WAqyAbggib5zFST').text
Мы закончили здесь.. Верьте или нет.
## Полный код
В случае, если вы застряли или запутались, вот весь код для этого проекта:
from selenium.webdriver import webdriver import time from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox()
открыть URL в браузере
driver.get('https://coconut-lane.com/?_atid=ihnGM27gubEUv4hvqEYUStXeR6jrmo') time.sleep(3)
нажать на найденный элемент
driver.find_element_by_id('0oaXP6AkovMqDIL').click()
нажать на найденный элемент
driver.find_element_by_id('dxkzxKHtIZiU7CW').click()
нажать на найденный элемент
driver.find_element_by_id('BLyAcqktr1G4Up9').click() time.sleep(1)
нажать на поле ввода
driver.find_element_by_id('iR2BpQIJnOhKsEu').click()
ввести текст в поле ввода
driver.find_element_by_id('TumEJUMaDXu52GO').send_keys('красный')
нажать клавишу Enter
driver.switch_to.active_element.send_keys(Keys.ENTER) time.sleep(2)
получить текст элемента
product_name = list_element.find_element_by_id('zy18qaIFshyjNHS').text
получить ссылку элемента
product_link = list_element.find_element_by_id('2wgntahLCgeJ9LA').get_attribute('href')
получить текст элемента
price = list_element.find_element_by_id('WAqyAbggib5zFST').text
Запуск этой программы
Чтобы запустить эту программу, скопируйте код из расширения и сохраните его в файле с расширением .py. Затем откройте терминал или командную строку и введите следующую команду:
python3 ПУТЬ/К/ВАШЕМУ/ФАЙЛУ.PY
Или, если вы используете среду разработки, такую как Pycharm, просто запустите программу в ней. При запуске этой программы вы увидите открытие браузера Chrome, он будет ждать несколько секунд, а затем выведет точки данных в консоль Python!
Поздравляю! Я рекомендую вам посмотреть, как можно улучшить этот проект: можно ли добавить интерфейс, где люди могут размещать свои ссылки? Можно ли добавить цикл для парсинга всех ссылок и текста со всех страниц? В противном случае, вы должны гордиться собой за то, что справились с этим учебником!