Иногда вашему проекту данных нужно извлекать данные из Интернета. Вы можете сделать это вручную, используя некоторые инструменты, такие как «Web Scraper», или использовать python для очистки ваших данных.

В этой статье я покажу вам, как вы можете извлекать веб-данные с помощью Python и, в частности, с помощью библиотеки Selenium.
Selenium — это библиотека, которая позволяет вам создавать «робота» для навигации в Интернете и извлечения всех необходимых данных.

Зачем использовать Selenium?
Вы можете использовать другую библиотеку для очистки данных с помощью Python, но у Selenium есть некоторые преимущества, которые мы перечислим ниже:

  • Поддержка нескольких браузеров
    - Браузер Chrome
    - Браузер Firefox
    - Браузер Internet Explorer
    - Браузер Opera
    - Браузер Safari
  • Поддержка нескольких языков
    - Python
    - C#
    - Java
    - Ruby
    - JavaScript
  • Обработка большого количества веб-элементов
     – Вы можете удалять все, что видите в Интернете
     – Вы можете нажимать кнопки
     – Вы можете заполнять формы
     – Динамическое сканирование (удаление данных сгенерировано .js)
    - Вы можете прокручивать вниз/вверх
    - Можно комбинировать с другой библиотекой, такой как BeautifulSoup
  • Легко учить

И. Первый пример Selenium

  • Первым шагом к использованию Selenium является загрузка веб-драйвера, который Selenium будет использовать для извлечения данных из Интернета. Для этого можно пойти туда.
  • Следующим шагом является загрузка библиотеки Selenium с помощью pip:pip install -U selenium

Теперь вы можете использовать Selenium для импорта данных из Интернета, как показано ниже. Этот пример направлен на очистку текста песни.

Выход:

Использование BeautifulSoup очень просто и позволяет нам извлекать данные из Интернета. Это хорошее решение для создания базы данных для ваших моделей машинного обучения.

Но теперь возникает вопрос, как получить правильный HTML-тег?
Вопрос в том, как мы можем найти элементы? В приведенном выше примере мы используем find_element_by_xpath, но есть много альтернатив этому решению. Чтобы найти список этого решения, вы можете пойти туда.

Чтобы найти путь к нужному элементу, вы можете использовать режим проверки, как мы объясняем в предыдущем разделе:

  • Когда веб-драйвер переходит на веб-сайт, щелкните правой кнопкой мыши и выберите Проверить.
  • Перейдите к нужному тегу и щелкните правой кнопкой мыши по нему и выберитекопировать XPath

  • Вы получаете путь к нужному тегу

Не волнуйтесь, позже я объясню подробнее, как получить эти теги.

II. Используйте Selenium, чтобы получить большефолловеровв Instagram

В этом разделе мы создадим робота, целью которого является увеличение количества наших подписчиков в Instagram.
Механизм этого робота заключается в навигации по профилям рассылки и подписке на них (опыт показывает, что у нас есть 10% шанс, что нас подпишут в ответ). ).

Вы можете увидеть, как работает мой робот ниже:

Как показано в предыдущем разделе, вы уже установили библиотеку Selenium и загрузили веб-драйвер.
Здесь мы шаг за шагом объясним, как сделать такого робота.

  • Шаг 1. Импорт библиотек
  • Шаг 2. Импортируйте адрес электронной почты и пароль

Чтобы подключиться к учетной записи Instagram, нам нужно использовать нашу электронную почту и пароль. Здесь мы не будем жестко кодировать эту информацию, а воспользуемся getpass библиотекой для ее импорта.

insta_email = getpass()
insta_password = getpass()
  • Шаг 3. Настройте веб-драйвер

Этот шаг состоит в том, чтобы установить наш драйвер, позвонив на страницу Instagram и подключившись к нашей учетной записи Instagram.

  • Шаг 4. Подпишитесь

Как видите, вы только что автоматизировали эту задачу. Таким образом, вы можете увеличить количество своих подписчиков.
Вы можете создать еще одного робота, чтобы отписаться от профиля, который не следует за вами. Скажи мне, если ты тоже хочешь эту часть.

III. Другие возможности Selenium

Как вы видели выше, Selenium допускает множество вещей, и раздел номер II является лишь примером. Вы можете сделать намного лучше.

В этом разделе мы представим вам некоторые функции, очень важные для автономности при использовании Selenium.

а. Как найти html-элементы?

Чтобы найти элементы html, вы можете использовать следующую команду, как в приведенных выше примерах:

  • find_element_by_id: найти элемент html с помощью id
  • find_element_by_name: найти элемент html с помощью name
  • find_element_by_xpath: найти элемент html с помощью xpath
  • find_element_by_link_text: найти элемент html с помощью link
  • find_element_by_tag_name: найти элемент html по tag name
  • find_element_by_class_name: найти элемент html по class name
  • find_element_by_css_selector: найти элемент html по css

Если вы хотите найти более одного элемента с помощью приведенной выше команды, вы должны добавить s к element. Например, если вы хотите получить все элементы, имеющие один и тот же класс, вы можете использовать find_elements_by_class_name

Чтобы найти элемент html, вы должны использовать режим inspect, щелкнув правой кнопкой мыши:

б. Как прокрутить вниз?

Если вы хотите прокрутить вниз, чтобы у вас было какое-то решение, здесь мы представим вам два из них.

Первое решение:

# Identify all elements of one type
items = all_tickers.find_elements_by_xpath(".//a")
# Scroll down step by step
for item in items:
    driver.execute_script("arguments[0].scrollIntoView();", item)

в. Как нажать на кнопку?

driver.find_element_by_xpath('/button_xpath').click()

д. Заполните формы

# Identify the search section
search = driver.find_element_by_xpath('//*[@id="search"]')
# Delete text if exist in the search bar
search.clear()
# Send the element you are looking for
search.send_keys('ericsson')
# Click on validation button
driver.find_element_by_xpath('/button_xpath').click()

Вывод:

Теперь у вас есть основы, чтобы начать использовать Selenium. Эта библиотека позволит вам получать больше данных из Интернета.
Вы также можете комбинировать Selenium с другими библиотеками, такими как BeautifulSoup, чтобы использовать преимущества обеих из них.

Вы новичок на Medium?
Не стесняйтесь подписаться менее чем за 5 долларов здесь, чтобы получать безграничные выгоды и улучшать свои навыки.