Изучите парсинг веб-страниц с Python за пять минут

Эта статья посвящена парсингу веб-страниц с использованием Python. Мы собираемся использовать библиотеку Beautiful Soup 4. В статье подробно описаны простые шаги, необходимые для очистки данных с веб-страницы. Мы напишем образец кода для извлечения данных с веб-сайта.

Давайте посмотрим на необходимые библиотеки Python:

  1. Библиотека request для сетевых запросов

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

2. Библиотека Thehtml5lib для парсинга HTML

Как только контент станет доступен, нам нужно указать библиотеку, которая представляет логику синтаксического анализа доступного текста. Мы будем использовать html5lib библиотеку для синтаксического анализа текстового содержимого в соответствии с представлением на основе HTML DOM.

3. Библиотека Thebeautifulsoup4 для навигации по древовидной структуре HTML.

beautifulsoup4 принимает исходное текстовое содержимое и библиотеку синтаксического анализа в качестве входных параметров. В нашем примере мы представили html5lib как библиотеку синтаксического анализа. Затем его можно использовать для навигации и поиска элементов в проанализированных узлах HTML. Он может извлекать данные из узлов HTML и извлекать / искать необходимые узлы из структуры HTML.

Выполнение запроса на веб-контент

Сделаем веб-запрос на очистку сайта. Мы будем использовать библиотеку requests. Чтобы начать использовать библиотеку requests, нам нужно установить стороннюю библиотеку, используя следующую команду

  • pip install requests

Мы удалим веб-сайт www.learn-javascript.in, чтобы увидеть, сколько статей доступно. Давайте сначала сделаем запрос на извлечение контента для указанного веб-сайта. request.get делает запрос к веб-странице, которая возвращает необработанное содержимое HTML.

Результат выполнения вышеуказанного выполнения можно увидеть ниже. Используя requests библиотеку, мы можем извлечь HTML-код, связанный с веб-сайтом. Полученный результат необходимо дополнительно оценить, прежде чем мы сможем начать извлекать из него данные. В настоящее время полученный результат имеет тип string.

Разбор исходной HTML-строки до древовидной структуры

После того, как мы получили необработанный HTML-код для приложения, нам нужно преобразовать его в древовидную структуру HTML. Разбор текста можно выполнить с помощью библиотеки BeautifulSoup.

Перед запуском нам необходимо выполнить следующие команды:

  • pip install html5lib
  • pip install beautifulsoup4

Нам нужно указать библиотеку парсера, необходимую для парсинга. Мы будем использовать html5lib в качестве библиотеки парсера. Используя эту библиотеку парсера, мы можем провести дальнейший анализ. Посмотрим на код ниже.

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

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

Поиск обязательных HTML-элементов

Теперь, когда у нас есть проанализированный объект HTML, мы можем использовать этот объект soup. ищем необходимые элементы в структуре HTML.

Описание проблемы

Ниже приведена веб-страница, которую мы хотим очистить:

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

HTML-код выше представляет каждую тему в приложении. Заголовки тем заключены в тег h1 с именем класса content-heading.

Чтобы получить список всех тем, нам нужно извлечь все элементы DOM типа h1 и содержащие класс content-heading.

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

Давайте посмотрим, как мы можем извлечь h1 элементы DOM и получить список тем. Ниже приведен код:

Давайте посмотрим на вывод указанного кода:

Теперь мы можем извлекать и анализировать данные с веб-страницы. Библиотека Python BeautifulSoup - это быстрый и эффективный способ очистки данных с веб-сайтов.