- xpath 是一门在 xml 文档中查找信息的语言。xpath 用于在 xml 文档中通过元素和属性进行导航
- 实例
路径表达式 | 结果 |
---|---|
bookstore | 选取 bookstore 元素的所有子节点。 |
/bookstore | 选取根元素 bookstore。 注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径! |
bookstore/book | 选取属于 bookstore 的子元素的所有 book 元素。 |
//book | 选取所有 book 子元素,而不管它们在文档中的位置。 |
bookstore//book | 选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。 |
//@lang | 选取名为 lang 的所有属性。 |
- 示例1:爬取网页获得etree对象,使用text属性获取标签文本
import requests
from lxml import etree
import re
def shanbei(page):
url = 'https://www.shanbay.com/wordlist/104899/202159/?page={0}'.format(page)
rsp = requests.get(url)
tags = etree.html(rsp.content)
trlist = tags.xpath('//table[@class="table table-bordered table-striped"]/tbody/tr')
words=dict()
for tr in trlist:
word = tr.xpath('.//strong')
value = tr.xpath('.//td[@class="span10"]')
words[word[0].text]= value[0].text.strip()
print(words)
- 示例2:从文本获取etree对象,并使用text()获取标签文本
from lxml import etree
with open('index.html','r') as f:
html = f.read()
root = etree.html(html)
for item in root.xpath('//button'):
print(item.tag)
print(item.xpath('./text()')) #返回值为列表,按行(br标签)分割元素