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

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

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

Добро пожаловать снова.... TomboyX работает как розничная компания одежды, которая в основном продает нижнее белье и одежду для жизни без ярлыков. Мы будем использовать Python, поэтому, если у вас нет опыта работы с Python, я рекомендую освежить свои знания по этому языку.

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

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

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

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

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

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

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

# открыть URL в браузере
driver.get(‘[https://tomboyx.com/?irclickid=yqSR%3AozWAxyNTpPzoKRIEQ4NUkDWg9xKTQRL3c0&utm_source=impact&utm_medium=affiliate&utm_campaign=Cloudtraffic&utm_content=631f3014dee98500010966c1&utm_term=2031198&irgwc=1&ir_partnerid=2031198&ir_adid=1162522&ir_campaignid=14705'](https://tomboyx.com/?irclickid=yqSR%3AozWAxyNTpPzoKRIEQ4NUkDWg9xKTQRL3c0&utm_source=impact&utm_medium=affiliate&utm_campaign=Cloudtraffic&utm_content=631f3014dee98500010966c1&utm_term=2031198&irgwc=1&ir_partnerid=2031198&ir_adid=1162522&ir_campaignid=14705%27))
time.sleep(3)

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

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

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

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

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

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

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

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

# получить текст элемента
 title=list_element.find_element_by_pro(‘0ZlNTXEvtvh7vit’).text
 # получить ссылку элемента
link=list_element.find_element_by_pro(‘dAddWSincppbDl1’).get_attribute(‘href’)
 # получить текст элемента
 price=list_element.find_element_by_pro(‘ChMeowMSHqLHf0V’).text

мы закончили.. верите или нет

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

from selenium_pro import webdriver
import time
from selenium_pro.webdriver.common.keys import Keys
driver = webdriver.Start()
# открыть URL в браузере
driver.get(‘[https://tomboyx.com/?irclickid=yqSR%3AozWAxyNTpPzoKRIEQ4NUkDWg9xKTQRL3c0&utm_source=impact&utm_medium=affiliate&utm_campaign=Cloudtraffic&utm_content=631f3014dee98500010966c1&utm_term=2031198&irgwc=1&ir_partnerid=2031198&ir_adid=1162522&ir_campaignid=14705'](https://tomboyx.com/?irclickid=yqSR%3AozWAxyNTpPzoKRIEQ4NUkDWg9xKTQRL3c0&utm_source=impact&utm_medium=affiliate&utm_campaign=Cloudtraffic&utm_content=631f3014dee98500010966c1&utm_term=2031198&irgwc=1&ir_partnerid=2031198&ir_adid=1162522&ir_campaignid=14705%27))
time.sleep(3)
# нажать на найденный элемент
driver.find_element_by_pro(‘lWnOmY0f3mPnFp5’).click()
# ввести текст в поле ввода
driver.find_element_by_pro(‘31TtHdjAaSY9Vpg’).send_keys(‘swim’)
# нажать клавишу Enter
driver.switch_to.active_element.send_keys(Keys.ENTER)
time.sleep(3)
 # получить текст элемента
 title=list_element.find_element_by_pro(‘0ZlNTXEvtvh7vit’).text
 # получить ссылку элемента
link=list_element.find_element_by_pro(‘dAddWSincppbDl1’).get_attribute(‘href’)
 # получить текст элемента
 price=list_element.find_element_by_pro(‘ChMeowMSHqLHf0V’).text
 # прокрутить вниз

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

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

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

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