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. След като стартирате примера на кода по-горе, трябва да получите следния резултат:

Здравей свят !!

Забележете втория ред в изхода. Тук “document”, който е екземпляр на клас “PyQuery”, не връща обект от тип низ. Можете бързо да заявите всички методи, налични за екземпляр на „документ“, като добавите следния допълнителен ред към примерната кодова таблица по-горе:

от pyquery импортиране на PyQuery като pq
документ = pq ("Здравей свят !!")
печат (помощ (документ))

Можете също да разглеждате API за клас PyQuery онлайн.

За да създадете дърво на документ от URL, вместо това използвайте следния код (заменете „url“ с вашия собствен желан адрес):

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

За да създадете дърво на документ от локален HTML файл, използвайте кода по-долу (заменете стойността на „име на файл“ според вашите нужди):

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

Сега, когато имате дърво на документ, можете да започнете да го анализирате.

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

Можете да извличате данни и да манипулирате дървета на документи, като използвате различни методи. Някои от най-често срещаните методи са изброени по-долу с мостри. За всички използваеми методи вижте API, наличен тук.

Можете да използвате метода „text“, за да получите текстово съдържание на елемент:

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

Здравей свят !!

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

Можете да изберете конкретен таг / елемент, като предоставите името му като аргумент на екземпляра „документ“. След като стартирате горната примерна програма, трябва да получите следния изход:

Здравей свят !!

Можете да получите атрибути на етикет, като използвате метода “attr”. За да направите това, изберете маркер, който искате да анализирате ('p' в този случай) и предоставете името на атрибута като аргумент ('id' в този случай) или използвайте точкова нотация.

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

Здравей свят !!

")
p = документ ('p')
печат (документ)
печат (стр.attr ("id"), стр.attr.документ за самоличност)

След като стартирате горната примерна програма, трябва да получите следния изход:

Здравей свят !!

Можете да манипулирате CSS, използвайки метода “css”. За да добавите CSS стилове към

или друг маркер, можете да използвате следния код:

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

Здравей свят !!

")
p = документ ('p')
стр.css ("color": "red")
печат (документ)
печат (стр.attr ("стил"))

Заменете частта „“ color ”:“ red ”” със собствените си персонализирани стилове. След като стартирате горната проба на кода, трябва да получите следния изход и можете да проверите дали CSS е приложен правилно:

Здравей свят !!


цвят: червен

Ако имате предварително оформен клас, можете просто да използвате метода “addClass”, за да приложите съществуващи стилове.

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

Здравей свят !!

")
p = документ ('p')
стр.addClass ("mystyle")

Можете да добавите и добавите своя собствена персонализирана маркировка, като използвате примерния код по-долу:

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

Здравей свят !!

")
p = документ ('p')
стр.prepend ("

Здравей

")
стр.добави ("

Чао

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

Заменете аргументите в метода „prepend“ и „add“ със собствени стойности. След като стартирате горната примерна програма, трябва да получите следния изход:

Здравей

Здравей свят !!

Чао

За да премахнете съдържанието на елемент, използвайте метода “празен”.

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

Здравей свят !!

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

След като стартирате горната примерна програма, трябва да получите следния изход:

Можете да използвате метода „филтър“, за да изберете конкретни елементи, когато има множество тагове от един и същи тип. Например, кодът по-долу показва „

Таг с „id“ като „здравей“:

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

Здравейте

Свят !!

")
p = документ ('p')
печат (стр.филтър ("# здравей"))

След като стартирате горната примерна програма, трябва да получите следния изход:

Здравейте

Можете да намерите няколко маркера / елемента наведнъж, използвайки метода “find”:

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

Здравейте

Свят !!

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

Поставете името на етикета / елемента като аргумент на метода “find”. След като стартирате горната примерна програма, трябва да получите следния изход:

Здравейте

Свят !!

Можете да превключвате между „xml“ и „html“ парсери, като използвате допълнителен аргумент „парсер“:

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

Здравейте

Свят !!

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

Ако се нуждаете от допълнителна помощ с Pyquery, вижте официалната документация и примери, налични тук.

Заключение

PyQuery ви позволява бързо да анализирате HTML документи, като напишете минимален код, тъй като включва множество помощни функции, които напълно пропускат необходимостта от писане на потребителски код. Нейната „jQuery“ като синтаксис и структура също помага при избора на елементи и възли, без да навлиза по-навътре в дървото на документа, особено когато има много вложени маркировки.

Как да използвам AutoKey за автоматизиране на Linux игри
AutoKey е програма за автоматизация на настолни компютри за Linux и X11, програмирана в Python 3, GTK и Qt. Използвайки неговата функционалност за скр...
Как да покажа брояч на FPS в игрите на Linux
Linux игрите получиха голям тласък, когато Valve обяви поддръжка на Linux за Steam клиент и техните игри през 2012 г. Оттогава много AAA и независими ...
Как да изтеглите и пуснете Civilization VI на Сид Майер на Linux
Въведение в играта Civilization 6 е модерен поглед върху класическата концепция, въведена в поредицата от игрите Age of Empires. Идеята беше доста про...