Python

Как анализировать и очищать HTML с помощью Pyquery

Как анализировать и очищать HTML с помощью Pyquery
«Pyquery» - это сторонний модуль Python, который позволяет анализировать и извлекать данные из документов «xml» и «html». Он вдохновлен библиотекой jQuery JavaScript и имеет почти идентичный синтаксис, что позволяет использовать множество вспомогательных функций и сокращенный код для анализа и управления деревом документа. В этой статье будет представлено простое руководство по Pyquery, которое поможет вам начать работу с модулем.

Установка Pyquery

Чтобы установить Pyquery в Ubuntu, используйте команду, указанную ниже:

$ sudo apt установить python3-pyquery

Вы также можете установить последнюю версию Pyquery из диспетчера пакетов «pip», последовательно выполнив следующие две команды:

$ sudo apt установить python3-pip
$ pip3 установить pyquery

Чтобы установить Pyquery в других дистрибутивах Linux, установите «pip3» из диспетчера пакетов и выполните вторую команду, упомянутую выше.

Создание анализируемого дерева документов

Прежде чем вы сможете анализировать и извлекать данные из HTML-документа, вам необходимо создать дерево документов. Вы можете создать дерево документов из простой разметки HTML, используя приведенный ниже пример кода:

из pyquery импортировать PyQuery как pq
document = pq ("Привет, мир !!")
печать (документ)
печать (тип (документ))

Первый оператор импортирует класс PyQuery из модуля pyquery. Затем создается новый экземпляр класса PyQuery. После выполнения приведенного выше примера кода вы должны получить следующий результат:

Привет мир !!

Обратите внимание на вторую строку вывода. Здесь «документ», который является экземпляром класса «PyQuery», не возвращает объект строкового типа. Вы можете быстро запросить все методы, доступные для экземпляра «документа», добавив следующую дополнительную строку в приведенный выше пример кода:

из pyquery импортировать PyQuery как pq
документ = pq ("Привет мир !!")
печать (справка (документ))

Вы также можете просматривать API для класса PyQuery в Интернете.

Чтобы создать дерево документов из URL-адреса, используйте вместо него следующий код (замените «url» своим желаемым адресом):

из pyquery импортировать PyQuery как pq
document = pq (url = 'https: // пример.com ')
печать (документ)

Чтобы создать дерево документов из локального HTML-файла, используйте приведенный ниже код (замените значение «filename» в соответствии с вашими потребностями):

из pyquery импортировать PyQuery как pq
документ = pq (имя файла = 'индекс.html ')
печать (документ)

Теперь, когда у вас есть дерево документов, вы можете приступить к его синтаксическому анализу.

Управление деревом документа

Вы можете извлекать данные и управлять деревьями документов, используя различные методы. Некоторые из наиболее распространенных методов перечислены ниже с примерами. Чтобы узнать обо всех доступных методах, обратитесь к API, доступному здесь.

Вы можете использовать «текстовый» метод для получения текстового содержимого элемента:

из pyquery импортировать PyQuery как pq
документ = pq ("

Привет мир !!

")
p = документ ('p')
печать (p.текст())

Вы можете выбрать конкретный тег / элемент, указав его имя в качестве аргумента для экземпляра «документа». После выполнения приведенного выше примера кода вы должны получить следующий результат:

Привет мир !!

Вы можете получить атрибуты тега с помощью метода attr. Для этого выберите тег, который вы хотите проанализировать (в данном случае «p»), и укажите имя атрибута в качестве аргумента (в данном случае «id») или используйте точечную нотацию.

из pyquery импортировать PyQuery как pq
документ = pq ("

Привет мир !!

")
p = документ ('p')
печать (документ)
печать (p.attr ("идентификатор"), p.attr.я бы)

После выполнения приведенного выше примера кода вы должны получить следующий результат:

Привет мир !!

Вы можете манипулировать CSS с помощью метода «css». Чтобы добавить стили CSS в

или любой другой тег, вы можете использовать следующий код:

из pyquery импортировать PyQuery как pq
документ = pq ("

Привет мир !!

")
p = документ ('p')
п.css ("цвет": "красный")
печать (документ)
печать (p.attr ("стиль"))

Замените часть «« color »:« red »» своими собственными стилями. После выполнения приведенного выше примера кода вы должны получить следующий результат и убедиться, что CSS применен правильно:

Привет мир !!


красный цвет

Если у вас есть класс с предварительно заданным стилем, вы можете просто использовать метод «addClass» для применения существующих стилей.

из pyquery импортировать PyQuery как pq
документ = pq ("

Привет мир !!

")
p = документ ('p')
п.addClass ("мой стиль")

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

из pyquery импортировать PyQuery как pq
документ = pq ("

Привет мир !!

")
p = документ ('p')
п.добавить ("

Привет

")
п.добавить ("

до свидания

")
печать (документ)

Замените аргументы в методах «добавить» и «добавить» своими собственными значениями. После выполнения приведенного выше примера кода вы должны получить следующий результат:

Привет

Привет мир !!

до свидания

Чтобы удалить содержимое элемента, используйте «пустой» метод.

из pyquery импортировать PyQuery как pq
документ = pq ("

Привет мир !!

")
p = документ ('p')
п.пустой()
печать (документ)

После выполнения приведенного выше примера кода вы должны получить следующий результат:

Вы можете использовать метод «фильтра» для выбора определенных элементов, когда есть несколько тегов одного типа. Например, в приведенном ниже коде отображается символ "

»Тег, имеющий« id »как« hello »:

из pyquery импортировать PyQuery как pq
документ = pq ("

Привет

Мир !!

")
p = документ ('p')
печать (p.filter ("# привет"))

После выполнения приведенного выше примера кода вы должны получить следующий результат:

Привет

Вы можете найти сразу несколько тегов / элементов, используя метод «find»:

из pyquery импортировать PyQuery как pq
документ = pq ("

Привет

Мир !!

")
печать (документ.найти ('p'))

Укажите имя тега / элемента в качестве аргумента метода поиска. После выполнения приведенного выше примера кода вы должны получить следующий результат:

Привет

Мир !!

Вы можете переключаться между синтаксическими анализаторами «xml» и «html», используя дополнительный аргумент «синтаксический анализатор»:

из pyquery импортировать PyQuery как pq
документ = pq ("

Привет

Мир !!

", parser =" html ")
печать (документ)

Если вам нужна дополнительная помощь с Pyquery, обратитесь к его официальной документации и примерам, доступным здесь.

Заключение

PyQuery позволяет быстро анализировать html-документы, написав минимум кода, поскольку он включает в себя множество вспомогательных функций, которые полностью исключают необходимость написания собственного кода. Его «jQuery» синтаксис и структура также помогают выбирать элементы и узлы, не углубляясь в дерево документа, особенно когда много вложенной разметки.

5 лучших аркад для Linux
В настоящее время компьютеры - это серьезные машины, используемые для игр. Если вы не можете получить новый рекорд, вы поймете, о чем я. В этом посте ...
Битва за Веснот 1.13.6 Выпущена разработка
Битва за Веснот 1.13.6, выпущенная в прошлом месяце, является шестой разработкой в ​​1.13.x и содержит ряд улучшений, в первую очередь пользовательско...
Как установить League Of Legends на Ubuntu 14.04
Если вы поклонник League of Legends, то это возможность для вас протестировать League of Legends. Обратите внимание, что LOL поддерживается в PlayOnLi...