Connect with us

Обучение

Заметки Python #12: Регулярные выражения в Web

 

Применим уже полученный опыт с регулярными выражениями, при работе с кодом HTML

Работаем с HTML

С помощью регулярных выражений можно работать с исходным кодом страницы сайта — HTML. Например, можно спарсить погоду со страницы Яндекса. Для начала сделаем это обычным, «механическим» способом. Откроем главную страницу Яндекса и увидим всем знакомый виджет погоды

Чтобы посмотреть в Google Chrome исходный код страницы, можно использовать горячие клавиши CTRL+U. Он откроется в новом окне. Обычным поиском (ctrl+f) ищем нужный нам виджет (на скрине выше — другой город, поэтому погода изменилась на +3)

Для удобства скопируем код в отдельный файл main.html в нашей среде разработки. Теперь мы можем обращаться к коду из pycharm (или кто что использует). Теперь можно прочитать и спарсить нужную нам часть кода с помощью регулярных выражений, т.е. будем «вытаскивать» вот эту часть

<a classhome-link home-link_black_yes weather__grade» aria-label+3 °C, ясно» href=»https://yandex.ru/pogoda/moscow» data-statlogweather.grade» data-statlog-showed1«>

Пишем код. Вместо +3 °C нам нужно подставить свой шаблон, ведь погода будет всегда меняться.

 

 

Результат:

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

Копируем часть гипертекстовой ссылки и вставляем её на место шаблона. Не забываем при этом ставить обратный слэш на кавычках, иначе программа посчитает это концом шаблона:

 

Результат:

Парсинг текста

С помощью регулярных выражений можно спарсить весь текст на странице, вырезав всё ненужное — тэги, комментарии, в общем, весь служебный код. Как это сделать?

 

Библиотека BeutifulSoup

Чтобы работать с HTML-кодом не всегда полезно и правильно использовать встроенные инструменты. Для этого есть специальные библиотеки для Python, которые сильно упрощают взаимодействие с языком разметки. Одна из них — BeutifulSoup. Чтобы её установить достаточно зайти в File -> Settings -> Project (будет написан ваш текущий проект). Ниже выбираем Project Interpreter

Нажимаем «Добавить»

Ищем, выбираем, устанавливаем:

Тоже самое проделайте с библиотекой bs4

Чтобы работать с библиотекой, нужно её импортировать обычным нам способом — через import. Для начала попробуем получить разметку обычного HTML-файла. Иногда в source невозможно ничего понять, давайте попробуем привести её в friendly вид или получить текст с помощью метода get_text

 

Результат:

С помощью BeautifulSoup можно «выцепить» все ссылки со страницы одной строчкой:

 

Результат:

Click to comment

Leave a Reply

Ваш e-mail не будет опубликован.

Лучшие сервисы стриминга музыки в 2019 году

Сервисы

Wink Ростелеком: Samsung LG, Sony, Phillips, Android TV

Ростелеком

LG WEB OS: приложения, обновления, настройка, проблемы со звуком

Гаджеты

Ноутбуки Asus не видят жесткий диск. Автоматический вход в BIOS при старте

Гаджеты

.

Digital2.ru - тренды, IT, разработка, цифровая экономика

Connect
Подпишись на нас