lxml

Software captura de pantalla:
lxml
Detalles de software:
Versión: 3.4.4 Actualizado
Fecha de carga: 12 May 15
Promotor: infrae.com
Licencia: Libre
Popularidad: 70

Rating: nan/5 (Total Votes: 0)

lxml combina la velocidad de esas bibliotecas con la sencillez del lenguaje Python.
Compatible con todas las versiones CPython 2,4-3,2

¿Qué hay de nuevo en esta versión:.

  • lxml.html.iterlinks ahora devuelve enlaces dentro de las etiquetas meta de actualización.
  • collect_ids opción Nueva XMLParser = False para desactivar la creación de la tabla hash de Identificación. Esto puede acelerar sustancialmente hasta el análisis de los documentos con muchas identificaciones diferentes que no se utilizan.
  • El analizador utiliza tablas hash por-documento para IDs XML. Esto reduce la carga de la dict analizador sintáctico global y acelera el análisis de documentos con muchas identificaciones diferentes.
  • ElementTree.getelementpath (elemento) devuelve una expresión ElementPath estructural para el elemento dado, que puede ser utilizado para búsquedas más tarde.
  • xmlfile () acepta un argumento nuevo cierre = True para cerrar archivo (similares a) los objetos después de escribir para ellos. Antes, xmlfile () sólo cerró el archivo si la había abierto internamente.
  • Permitir & quot; bytearray & quot; tipo para la introducción de texto ASCII.

¿Cuál es nuevo en la versión 3.4.2:

  • lxml.html.iterlinks ahora vuelve enlaces dentro de meta actualizar las etiquetas.
  • collect_ids opción Nueva XMLParser = False para desactivar la creación de la tabla hash de Identificación. Esto puede acelerar sustancialmente hasta el análisis de los documentos con muchas identificaciones diferentes que no se utilizan.
  • El analizador utiliza tablas hash por-documento para IDs XML. Esto reduce la carga de la dict analizador sintáctico global y acelera el análisis de documentos con muchas identificaciones diferentes.
  • ElementTree.getelementpath (elemento) devuelve una expresión ElementPath estructural para el elemento dado, que puede ser utilizado para búsquedas más tarde.
  • xmlfile () acepta un argumento nuevo cierre = True para cerrar archivo (similares a) los objetos después de escribir para ellos. Antes, xmlfile () sólo cerró el archivo si la había abierto internamente.
  • Permitir & quot; bytearray & quot; tipo para la introducción de texto ASCII.

¿Qué hay de nuevo en la versión 3.3.2:

  • Las propiedades resolutores y versión, así como la métodos set_element_class_lookup () y makeelement (), se perdieron a partir de objetos iterparse.
  • Las instancias de XMLSchema, Schematron y RelaxNG no borrar su error_log locales antes de ejecutar una validación.
  • lxml.doctestcompare mezclado & quot; se espera & quot; y & quot; real & quot; en valores de atributos.

¿Qué hay de nuevo en la versión 3.3.1:

  • Bugs fijo:
  • documentos HTML analizados con parser.feed () no encontraron elementos durante etiqueta iteración.
  • Edificio en PyPy fracasó debido a la falta de apoyo a PyUnicode_Compare () y PyByteArray _ * () en C-API de PyPy.
  • Compilación en MSVC fracasó debido a la falta de & quot; stdint.h & quot; archivo de cabecera estándar.
  • iterparse () no pudieron analizar BOM prefijo archivos.

¿Qué hay de nuevo en la versión 3.3.0:

  • Bugs fijo:
  • La heurística que distingue a rutas de archivos de direcciones URL se apretó a producir menos falsos negativos.

¿Qué hay de nuevo en la versión 3.2.3:

  • Soporte fijo para Python 2.4 que se había perdido en 3.2 0.2.

¿Qué hay de nuevo en la versión 3.2.1:

  • Los métodos apply_templates () y process_children () de elementos de extensión XSLT han adquirido dos nuevas opciones booleanas elements_only y remove_blank_text que descartar cualquiera de todas las cadenas de espacios en blanco o sólo de cuerdas de la lista de resultados.

¿Qué hay de nuevo en la versión 3.2.0:

  • Líder espacios en blanco podría cambiar el comportamiento del análisis de cadenas funciones en lxml.html.
  • La cadena de análisis de funciones en lxml.html son más robusta en la cara de contenido HTML raro como conjuntos de marcos o faltante etiquetas del cuerpo.
  • I / O errores al tratar de acceder a los archivos con rutas que contienen caracteres no ASCII podrían aumentar UnicodeDecodeError lugar de informar adecuadamente el IOError.
  • Analizar de cadenas en memoria en el acceso a la red con discapacidad en el programa de análisis por defecto y hecho intentos posteriores para analizar desde una URL falla.

¿Qué hay de nuevo en la versión 3.1.2:

  • Pases atributos a través del espacio de nombres conscientes de la API puente de saxo (es decir, el método handler.startElement ()) no pudo con un TypeError.
  • error de serialización fijo en la salida XSLT al convertir el árbol de resultado a una cadena Unicode.

¿Qué hay de nuevo en la versión 3.0.2:

  • Solucionado el fallo durante el apagado intérprete por el cambio a Cython 0.17 0,3 para la construcción.

¿Qué hay de nuevo en la versión 3.0:

  • C14N permite especificar los prefijos incluyentes para ser promovidos arriba- nivel durante la serialización exclusiva.
  • El apoyo inicial para la construcción en PyPy (a través cpyext).
  • objetos DTD ganó una API que permite el acceso de lectura a sus declaraciones.
  • xpathgrep.py obtuvo el apoyo para analizar línea por línea (por ejemplo, desde la salida de grep) y para que rodea la salida con una nueva etiqueta raíz.
  • E-fábrica en lxml.builder acepta subtipos de tipos de datos conocidos (como los subtipos de cuerda) en la construcción de los elementos que los rodean.
  • iteración Árbol y iterparse () con un argumento etiqueta selectiva apoya pasando un conjunto de etiquetas. Nodos del árbol serán devueltos por los iteradores si coinciden con alguna de las etiquetas.

¿Qué hay de nuevo en la versión 2.3.5:

  • Crash cuando la fusión de los nodos de texto en element.remove ( ).
  • Crash en analizador SAX / target al informar DOCTYPE vacía.

¿Qué hay de nuevo en la versión 2.3.4:

  • Crash en la construcción de un nsmap (propiedad del elemento) con URI de espacio de nombres vacía.
  • Crash debido a la condición de carrera cuando se producen errores (o mensajes de usuarios) durante el procesamiento XSLT roscado.
  • XSLT hoja de estilo compilación podría ignorar errores de compilación.

¿Qué hay de nuevo en la versión 2.3.3:

  • características añadido:
  • lxml.html.tostring () ganó nuevas opciones de serialización with_tail y tipo de documento.
  • Bugs fijo:
  • Se ha corregido un fallo al utilizar iterparse () para análisis de HTML y solicitando eventos de arranque.
  • análisis fijo de más selectores en cssselect. El espacio en blanco antes del pseudo-elementos y pseudo-clases es significativo, ya que es un combinador descendiente. & Quot; E: seudo & quot; debe analizar el mismo que & quot; E *: & quot ;, seudo no & quot; E:. seudo & quot;
  • lxml.html.diff ya no plantea una excepción al chocar con las etiquetas 'img' sin atributo 'src'.

¿Qué hay de nuevo en la versión 2.3.2:

  • características añadido:
  • lxml.objectify.deannotate () tiene un nuevo cleanup_namespaces opción booleana para eliminar las declaraciones de espacio de nombres objetivar (y generalmente limpiar las declaraciones de espacio de nombres) después de quitar las anotaciones de tipo.
  • lxml.objectify ganó su función propia subelemento () como una copia de etree.SubElement para evitar una importación de otro modo redundante de lxml.etree en el lado del usuario.
  • Bugs fijo:
  • Se ha solucionado el & quot; descendiente & quot; bug en cssselect por segunda vez (después de una primera corrección en lxml 2.3.1). El cambio anterior dio lugar a una regresión rendimiento grave para la evaluación basada XPath de la expresión traducido. Tenga en cuenta que esto rompe el uso de algunas de las expresiones XPath generadas como vías de ubicación XSLT que trabajaron anteriormente en 2.3.1.
  • análisis fijo de algunos selectores en cssselect. El espacio en blanco después de combinadores & quot; & # X3e; & quot ;, & quot; + & quot; y & quot; ~ & quot; ahora se ignora correctamente. Anteriormente se ha analizado como un combinador descendiente. Por ejemplo, & quot; div & # X3e; .foo & quot; fue analizado el mismo que & quot; div & # X3e; * .foo & quot; en lugar de & quot; div & # X3e; .foo & quot;.

¿Qué hay de nuevo en la versión 2.3.1:

  • características añadido:
  • Nueva opción kill_tags en lxml.html.clean para quitar etiquetas específicas y su contenido (es decir, la totalidad de su subárbol).
  • pi.get () y pi.attrib de instrucciones de procesamiento para analizar pseudo-atributos del contenido de texto de instrucciones de procesamiento.
  • lxml.get_include () devuelve una lista de incluir rutas que se pueden utilizar para compilar código C externo contra lxml.etree. Esto es especialmente necesario para lxml enlazado estáticamente construye cuando el código debe compilar contra las mismas versiones exactas de archivos de cabecera como lxml sí mismo.
  • Resolver.resolve_file () toma un close_file opción adicional que configura si el (similares) objeto de archivo se cerrará después de leer o no. Por defecto, el archivo se cierra, ya que no se espera que el usuario pueda mantener una referencia a él.
  • Bugs fijo:
  • Limpieza HTML no quitó 'de datos:'. Enlaces
  • La integración analizador html5lib ahora utiliza la aplicación "oficial" en html5lib sí, lo que hace que funcione con las versiones más recientes de la biblioteca.
  • En lxml.sax, endElementNS () podrían rechazar incorrectamente un nombre de etiqueta normal cuando el evento de inicio correspondiente inferir el mismo nombre de la etiqueta normal de estar en el espacio de nombres predeterminado.
  • Cuando un objeto de tipo fichero abierto se pasa a parse () o iterparse (), el analizador no cerrará después de su uso. Esto revierte un cambio en lxml 2.3, donde todos los archivos estarían cerradas. Es responsabilidad de los usuarios para cerrar adecuadamente el (similares) objeto de archivo, también en los casos de error.
  • error de aserción en lxml.html.cleaner cuando descartando elementos de nivel superior.
  • En lxml.cssselect, utilice el xpath 'A // B' (abreviatura de 'A / nodo descendiente-or-self :: () / B') en vez de 'A / descendiente :: B' para el css selector descendiente ('A B'). Esto hace que algunos casos de borde para ser coherente con el comportamiento de selección en WebKit y Firefox, y hace más expresiones css vías de ubicación válidos (para uso en xsl: template match).
  • En lxml.html, no seleccionada & # X3c; opción & # X3e; etiquetas ya no aparecen en los valores del formulario recogidos.
  • Agregar / quitar & # X3c; opción & # X3e; valores a / desde un campo de múltiples forma de selección de los selecciona y los deselecciona correctamente.
  • Otros cambios:
  • estático construye puede especificar el directorio de descarga con la opción---download dir.

¿Qué hay de nuevo en la versión 2.3:

  • características añadido:
  • En la búsqueda de los niños, lxml.objectify toma '{} tag' en el sentido de un espacio de nombres vacío, a diferencia del espacio de nombres de los padres.
  • Bugs fijo:
  • Cuando terminó de leer desde un objeto de tipo fichero, el analizador llama inmediatamente su método .close ().
  • Cuando haya terminado el análisis, iterparse () inmediatamente se cierra el archivo de entrada.
  • Trabajo en torno para el bug libxml2 que puede dejar el analizador HTML en un estado no funcional después de analizar un documento roto severamente (fijo en libxml2 2.7.8).
  • etiqueta Marque en HTML código de limpieza se llama correctamente marquesina.
  • Otros cambios:
  • Algunas funciones públicas en el C-API de nivel Cython tienen tipos de declaraciones más explícitas.

¿Qué hay de nuevo en la versión 2.3beta1:

  • Bugs fijo:
  • Crash en las últimas versiones libxml2 al mover elementos entre los documentos que tenían atributos en nodos XInclude reemplazados.
  • Función XMLID () faltaba los parámetros del analizador y base_url opcionales.
  • Busca etiquetas comodín en iterparse () se rompió en el AP3.
  • lxml.html.open_in_browser () no funcionaba en Python 3 debido a la utilización de os.tempnam. Ahora toma un parámetro opcional 'codificación'.

Programas parecidos

pymarc
pymarc

23 Jul 15

Pytz
Pytz

4 Jun 15

promise
promise

28 Feb 15

pycksum
pycksum

13 May 15

Comentarios a la lxml

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!