11. Искусство Web-scraping: анализ HTML с помощью Beautiful Soup

Веб-скрапинг - это метод для извлечения данных с веб-страниц. Если бы все в World Wide Web использовали действительный XHTML, это было бы легко. Однако в реальном мире подавляющее большинство веб-страниц использует то, что вы можете назвать tag soup - теоретически HTML, но на самом деле часто представляет собой неструктурированную смесь тегов и текста.

К счастью, модуль lxml включает пакет BeautifulSoup, который пытается перевести tag soup в дерево так же, как если бы он исходил с действующей страницы XHTML. Естественно, этот процесс не является совершенным, но есть очень хороший шанс, что полученное дерево будет иметь достаточно предсказуемую структуру, чтобы обеспечить автоматическое извлечение информации в нем.

Импортируйте модуль BeautifulSoup следующим образом:

from lxml.html import soupparser

В этом модуле есть две функции.

soupparser.parse(input)
Аргумент ввода указывает источник HTML веб-страницы как имя файла или файл-подобный объект. Возвращаемое значение представляет собой экземпляр ElementTree, корневым элементом которого является элемент html как экземпляр элемента.
soupparser.fromstring(s)
Аргумент s - это строка, содержащая tag soup. Возвращаемое значение представляет собой дерево узлов, представляющих s. Корневой узел этого дерева всегда будет элементом html как экземпляр элемента.