python xml解析html_lxml - 用Python解析XML和HTML

lxml是Python中高效且功能全面的XML和HTML处理库,它结合了libxml2和libxslt的C库。提供简单易用的Python API,支持XPath、CSS选择器及XML Schema验证。主要模块包括lxml.etree和lxml.html,可用于解析、创建和操作XML及HTML文档。关键功能包括元素树结构、属性、命名空间管理、XPath查询、文本内容处理等。
摘要由CSDN通过智能技术生成

lxml是一个功能丰富且简单易用的Python XML、HTML文档解析库

概述

lxml是一个非常Pythonic的文档解析工具包,依赖于C语言库libxml2和libslt。它的独特之处在于高效率与功能的完整性兼备,且提供了简单易用Python原生API。最新版本的lxml支持CPython2.6至3.6的版本。

下载

pip install lxml

# 可以通过pip直接进行下载使用

git clone https://github.com/lxml/lxml.git lxml

# 也可以从git克隆源码进行下载

Module lxml.html&lxml.etree

这是两个最常用的HTML文档和XML文档解析模块。

超文本标记语言

可扩展标记语言

Class _Element(顶级基类)

object ---+

|

_Element

# =====================================

# Properties(属性)

# =====================================

attrib # 元素属性字典

base # 原始文档的url或None

sourceline # 原始行数或None

tag # tag名

tail # 尾巴文本(存在于兄弟节点间,属于父节点的文本内容)

text # 位于第一个子标签之前的子文本

prefix # 命名空间前缀(XML)(详解见底部附录)

nsmap # 命名空间与URL映射关系(XML)(详解见底部附录)

# =====================================

# Instance Methods(实例方法)(常用)

# =====================================

xpath(self, _path, namespaces=None, extensions=None, smart_strings=True, **_variables)

# 通过xpath表达式查找指定节点元素,返回指定节点元素列表或None

getparent(self)

# 查找父节点,返回找到的父节点对象或None

getprevious(self)

# 查找前一个相邻的兄弟节点元素,返回找到的节点对象或None

getnext(self)

# 查找后一个相邻的兄弟节点对象,返回找到的节点对象或None

getchildren(self)

# 返回所有直属的子节点对象

getroottree(self)

# 返回所在文档的根节点树

find(self, path, namespaces=None)

# 根据标签名或路径,返回第一个匹配到的子节点对象

findall(self, path, namespaces=None)

# 根据标签名或路径,返回全部符合要求的子节点对象

findtext(self, path, default=None, namespaces=None)

# 根据标签名或路径,返回第一个匹配到的子节点对象的text文本

clear(self)

# 重置节点对象,清除所有子节点对象,以及所有的text、tail对象

get(self, key, default=None)

# 返回节点属性key对应的值

items(self)

# 以任意顺序返回节点属性键和值

keys(self)

# 以任意顺序返回包含节点全部属性名的列表

values(self)

# 以任意顺序返回包含节点全部属性值的列表

set(self, key, value)

# 设置节点属性

lxml.etree

object ---+

|

_Element ---+

|

ElementBase

# =====================================

Functions(函数)(常用)

# =====================================

HTML(text, parser=None, base_url=None)

# 将字符型HTML文档内容转换为节点树对象

fromstring(text, parser=None, base_url=None)

# 将字符型XML文档或文档片段转换问节点树对象

tostring(element_or_tree, encoding=None, method="xml", xml_declaration=None, pretty_print=False, with_tail=True, standalone=None, doctype=None, exclusive=False, with_commments=True, inclusive_ns_prefixes=None)

# 将节点树对象序列化为编码的字符型

tounicode(element_or_tree, method="xml", pretty_print=False, with_tail=True, doctype=None)

# 将节点树对象序列化为Unicode型

lxml.html

object ---+

|

etree._Element ---+

|

etree.ElementBase---+

|

object ---+ |

| |

HtmlMixin ---+

|

HtmlElement

# =====================================

Functions(函数)(常用)

# =====================================

fromstring(html, base_url=None, parser=None, **kwargs)

# 将字符型html文档转换为节点树或文档树

tostring(doc, pretty_print=False, include_meta_content_type=False, encoding=None, method="html", with_tail=True, doctype=None)

# 将节点树或文档树序列化为字符型

######################################

**Class HtmlMixin**

object ---+

|

HtmlMixin

# =====================================

Properties(属性)

# =====================================

base_url # 文档url

head #

标签部分

body #

标签部分

forms # 返回全部form列表

label # 元素的label标签

classes # class属性值的集合

# =====================================

Instance Methods(实例方法)(常用)

# =====================================

drop_tag(self)

# 移除标签,但不移除其子标签和text文本,将其合并到父节点

drop_tree(self)

# 移除节点树(包含子节点和text),但不移除它的tail文本,将其合并到父节点或前一个兄弟节点

find_class(self, class_name)

# 根据class属性值查找节点元素

get_element_by_id(self, rel)

# 根据id属性值查找节点元素

set(self, key, value=None)

# 设置节点元素的属性

text_content(self)

# 返回其后代节点与其自身的全部text内容

附录:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值