标签:注意 tostring pat 面积 常用 速度 print path ken
Lxml 是基于 libxml2 这一 XML解析库的 Python 封装。该模块使用 C 语言编写,解析速度比 Beautiful Soup 更快,不过安装过程也更为复杂,最新的安装说明可以参考 http;//Lxml.de/indtallation.html.
和 Beautiful Soup 一样,使用 Lxml 模块的第一步也是将有可能不合法的 HTM 解析为统一格式,下面是使用该模块解析统一个不完整 HTML 的例子。
>>> import lxml.html >>> broken_html = ‘<ul class=country><li>Area <li>Population </ul>‘ >>> tree = lxml.html.fromstring(broken_html) >>> fixed_html = lxml.html.tostring(tree, pretty_print = True) >>> print(fixed_html) b‘<ul class="country">\n<li>Area </li>\n<li>Population </li>\n</ul>\n‘
lxml 和 Beautiful Soup 一样也可以正确解析两侧缺失是我引号,并闭合标签,不过该模块没有添加<html> 和 <boby> 标签。
解析完输入内容后,进入选择元素的步骤,此时 lxml 有几种不同的方法,比如 XPath 选择器和类似 Beautiful Soup 的 find() 方法。
下面使用 lxml 的 CSS 选择器抽取面积数据的实例代码。
CSS 选择穷的关键代码已经被加粗显示。
选择所有的标签:*
选择<a> 标签:a
选择所有 class = ‘link‘ 的元素: .link
选择 class = ‘link‘ 的 <a> 标签:a.link
选择 id = ‘home‘ 的 <a> 标签, a#home
选择父元素为 <a> 标签的所有 <span> 字标签: a > span
选择 <a> 标签内部的所有 <span> 标签: a span
选择 title 属性为 ‘home’ 的所有 <a> 标签: a[titile = home]
Lxml 已经实现了大部分 CSS3 属性,其不支持的功能可以参见 httpS://pythonhosted.org/cssselect/#supported-selectors
需要注意的是,lxml 在内部实现中,实际上是将 CSS 选择器转换为等价的 XPath 选择器。
标签:注意 tostring pat 面积 常用 速度 print path ken
原文地址:https://www.cnblogs.com/jcjc/p/10874139.html