Page 256 - 6734
P. 256

lxml – простий і швидкий парсинг XML і HTML
               lxml  4.1.0  (http://lxml.de)  –  це  Python-бібліотека  для  обробки
           XML  і  HTML,  яка  є  прив’язкою  до  C  бібліотек  libxml2  і  libxslt.
           Володіє  повною  підтримкою  XML,  є  швидкою  і  зручною  у
           використанні, сумісна з ElementTree API. У прикладі розглядається
           використання  HTMLParser  та  xpath  для  отримання  ключових  слів
           некоректного  HTML  документу  з  тегу  meta.  XPath  (XML  Path
           Language) – це мова запитів до елементів XML документа.
           from StringIO import StringIO
           from lxml import etree
           broken_html=r"""<html><head>
           <meta content="Python, XML" name="keywords" />
           <head>""" # некоректний документ HTML
           parser=etree.HTMLParser()
           tree=etree.parse(StringIO(broken_html), parser) #
           парсинг
           root=tree.getroot() # кореневий елемент (html)
           es=root.findall('head/meta') # знайти усі теги meta
           for e in es:
               if 'name' in e.attrib and 'content' in e.attrib:
           # якщо є такі атрибути
                   if e.attrib['name']=="keywords":
                       print e.attrib['content']

           # або за допомогою мови запитів xpath:
           es=tree.xpath("head/meta[@name='keywords']/@content")
           es=tree.xpath("child::head/child::meta[attribute::nam
           e='keywords']/attribute::content") # або повний
           синтаксис xpath
           print es[0]

           Python, XML
           Python, XML


                                         255
   251   252   253   254   255   256   257   258   259   260   261