lxml.etree

您所在的位置:网站首页 xpath获取文本内容 lxml.etree

lxml.etree

2024-07-14 17:43| 来源: 网络整理| 查看: 265

首图

本文转载自知乎专栏《lxml.etree:用Xpath获取静态文本》

一、简介

lxml 是一个结合了 libxml2快速强大的特效和 Python 语言的易用性的一个第三方库,parse html 具有比 BeautifulSoup 更高的性能。

from lxml import etree # 调用方法 二、基础

Element是 lxml 中的一个类,大部分XML都是通过这个类创建与存储的。

root = etree.Element("root") print(root.tag) #调用root的tag属性 >>> root child1 = etree.SubElement(root, "child1") #为根节点添加子节点 列表List

为了方便获取子节点,这些子节点都是以列表的方式储存的。

child = root[0] print(child.tag) >>> child1 # child{柴鸥的}=子孙 字典Dict

XML Element 的属性格式为 Python 中的字典格式,你可以通过以下方式添加或获取:

root = etree.Element("root", interesting="totally") print(root.get("interesting")) >>> totally # interesting{因踹死钉} = 引起兴趣的 # element{艾乐蒙特} = 元素 # tag{泰格} = 标签 三、解析文本

lxml.etree中提供了几种方法用于解析文本:

etree.fromstring() # 用于解析字符串 etree.HTML() # 用于解析HTML对象 etree.XML() # 用于解析XML对象 etree.parse() # 用于解析文件类型的对象,parse{帕斯]=解析 四、用 Xpath 获取静态文本

Xpath为XML路径语言,用来确定XML文档中某个位置,类似于地理中经纬网的作用。

五、实例爬取东方财富网数据

用 Xpath 获取静态文本:

import requests from lxml import etree # 用Requests库抓取整个页面 url = 'http://data.eastmoney.com/cjsj/cpi.html' content = requests.get(url).content # 用etree.HTML()解析对象 html = etree.HTML(content) # 右键copy.Xpath复制后,通过etree.xpath()函数调用 html.xpath('//*[@id="tb"]/tr[3]/td[2]/text()') # 部分浏览器会在table标签下添加tbody标签,因此将Xpath中的tbody删去,否则将无法获取数据。 六、ElementPath

lxml 中支持一种类似于Xpath的路径语言,叫ElementPath。里面提供了四种方法获取元素和文档树:

iterfind() # 迭代所有符合条件的元素 findall() # 以列表形式返回所有元素 find() # 返回第一个元素 findtext() # 返回第一个元素的 text

ElementPath中不能使用绝对路径,因此不能直接使用从浏览器复制的Xpath,需要在前面加个“.”号。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3