lxml.etree |
您所在的位置:网站首页 › xpath获取文本内容 › lxml.etree |
本文转载自知乎专栏《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{柴鸥的}=子孙 字典DictXML 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删去,否则将无法获取数据。 六、ElementPathlxml 中支持一种类似于Xpath的路径语言,叫ElementPath。里面提供了四种方法获取元素和文档树: iterfind() # 迭代所有符合条件的元素 findall() # 以列表形式返回所有元素 find() # 返回第一个元素 findtext() # 返回第一个元素的 textElementPath中不能使用绝对路径,因此不能直接使用从浏览器复制的Xpath,需要在前面加个“.”号。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |