🐍 Как парсить и скрейпить HTML с помощью Pyquery

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

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

sudo apt install python3-pyquery
Прежде чем вы сможете анализировать и извлекать данные из HTML-документа, вам необходимо создать дерево документа.
Вы можете создать дерево документов из простой разметки HTML, используя приведенный ниже пример кода:
from pyquery import PyQuery as pq
document = pq("Hello World !!</html>")
print (document)
print (type(document))
<html>Hello World !!</html>
<class 'pyquery.pyquery.PyQuery'>
Обратите внимание на вторую строку вывода.
Здесь «document», который является экземпляром класса «PyQuery», не возвращает объект строкового типа.
Вы можете быстро запросить все методы, доступные для экземпляра «document», добавив следующую дополнительную строку в приведенный выше пример кода:
from pyquery import PyQuery as pq
document = pq("<html>Hello World !!</html>")
print (help(document))
Вы также можете просмотреть API для класса PyQuery в Интернете.
Чтобы создать дерево документов из URL-адреса, используйте вместо него следующий код (замените «url» своим адресом):
from pyquery import PyQuery as pq
document = pq(url='https://example.com')
print (document)
Чтобы создать дерево документов из локального HTML-файла, используйте приведенный ниже код (замените значение «filename» в соответствии с вашими потребностями):
Теперь, когда у вас есть дерево документов, вы можете приступить к его синтаксическому анализу.

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

Некоторые из наиболее распространенных методов перечислены ниже с примерами.

Чтобы узнать обо всех доступных методах, обратитесь к API, доступному здесь:

https://pythonhosted.org/pyquery/api.html

Вы можете использовать метод “text” для получения текстового содержимого элемента:
from pyquery import PyQuery as pq
document = pq('''<html><p id="hw">Hello World !!</p></html>''')= document('p')
print (p.text())
Вы можете выбрать конкретный тег/элемент, указав его имя в качестве аргумента для экземпляра «document».
После выполнения приведенного выше примера кода вы должны получить следующий результат:
Hello World !!
from pyquery import PyQuery as pq
document = pq('''<html><p id="hw">Hello World !!</p></html>''')= document('p')
print (document)
print (p.attr("id"), p.attr.id)
После выполнения приведенного выше примера кода вы должны получить следующий результат:
<id="hw">Hello World !!</p>
<id="hw" style="color: red">Hello World !!</p>
color: red
from pyquery import PyQuery as pq
document = pq('''<p id="hw">Hello World !!</p>''')= document('p')
p.prepend("<p>Hi</p>")
p.append("<p>Bye</p>")
print (document)
Замените аргументы в методах prepend и append своими собственными значениями.
После выполнения приведенного выше примера кода вы должны получить следующий результат:
Вы можете найти сразу несколько тегов/элементов, используя метод «find»:
from pyquery import PyQuery as pq
document = pq('''<p id="hello">Hello</p><p id="world">World !!</p>''', parser="html")
print (document)

Добавить комментарий