CoderCastrov logo
CoderCastrov
Питон

открыть URL в браузере

открыть URL в браузере
просмотров
4 мин чтение
#Питон

Снова добро пожаловать... RhinoShield разрабатывает чехлы для мобильных телефонов, защитные пленки и аксессуары, обеспечивающие максимальную защиту и настраиваемость. Мы будем использовать 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()

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

Rhino Shield Pipeline

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

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


driver.get('https://rhinoshield.io/')
time.sleep(3)

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

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

# выполнить клик на найденном элементе
driver.find_element_by_pro('8HYnZxarF6qaINt').click()
time.sleep(1)
# выполнить клик на поле ввода
driver.find_element_by_pro('Kl0sWaipV4Rz7sY').click()

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

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

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

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

Отлично! Итак, давайте продолжим запись, после ввода ключевого слова на веб-сайте Passion Planner, наведите курсор на заголовок продукта, щелкните правой кнопкой мыши и выберите "Скопировать текст" для получения текста продукта.

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

# для получения текста элемента
product_name = list_element.find_element_by_pro(‘XCXPo3JaPUO1zI1’).text
# для получения ссылки на элемент
product_link = list_element.find_element_by_pro(‘N6AVi5MUwFLhsVi’).get_attribute(‘href’)
# для получения текста элемента
description = list_element.find_element_by_pro(‘0zqLXLS0XLDbRd3’).text

Мы закончили здесь... Верьте или нет.

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
# открыть URL в браузере
driver.get('https://rhinoshield.io/')
time.sleep(3)
# нажать на найденный элемент
driver.find_element_by_id('8HYnZxarF6qaINt').click()
time.sleep(1)
# нажать на поле ввода
driver.find_element_by_id('Kl0sWaipV4Rz7sY').click()
# ввести текст в поле ввода
driver.find_element_by_id('zhqW55CimjS5QBS').send_keys('pew')
# нажать клавишу Enter
driver.switch_to.active_element.send_keys(Keys.ENTER)
# получить текст элемента
product_name = driver.find_element_by_id('XCXPo3JaPUO1zI1').text
# получить ссылку элемента
product_link = driver.find_element_by_id('N6AVi5MUwFLhsVi').get_attribute('href')
# получить текст элемента
description = driver.find_element_by_id('0zqLXLS0XLDbRd3').text

Запуск этой программы

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

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

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

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