python : lxml xpath get two different classes

标签 python xpath lxml

这是我的示例 Python 代码

import requests
import lxml.html

page = '<div class="aaaa12"><span class="test">22</span><span class="number">33</span></div><div class="dddd13"><span>Kevin</span></div>' 
tree = lxml.html.fromstring(page)


number = tree.xpath('//span[@class="number"]/text()')
price = tree.xpath('.//div[@class="dddd13"]/span/text()')

print number
print price

当我运行时,我可能会得到如下结果

['33']
['Kevin']

但是,我想同时获得两者,例如 = ['33','Kevin'] 我试过了

number = tree.xpath('//span[@class="number"]/text() or //div[@class="dddd13"]/span/text()')

我无法获取该值。获取两个不同类的语法是什么?

最佳答案

使用|联合运算符连接多个完整路径表达式的结果:

number = tree.xpath('//span[@class="number"]/text() | //div[@class="dddd13"]/span/text()')

演示:

>>> import lxml.html
>>> page = '<div class="aaaa12"><span class="test">22</span><span class="number">33</span></div><div class="dddd13"><span>Kevin</span></div>' 
>>> tree = lxml.html.fromstring(page)
>>> tree.xpath('//span[@class="number"]/text() | //div[@class="dddd13"]/span/text()')
['33', 'Kevin']

关于 python : lxml xpath get two different classes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28562717/

相关文章:

python - 使用 python/COM 的 Windows 应用程序自动化

Python正则表达式替换匹配文本

python - 用 Pandas 按间隔拆分长度(米)数据

javascript - 点击java元素scrapy+selenium

python - 使用 Python-Docx 设置字体属性

Python lxml - 获取标签文本的索引

python - NumPy 中 random.choice 的多维数组

java - 使用此模板找不到 div xpath

xml - 错误!关于我使用的所选 XPath 有什么建议吗?

python - 数据框到分层xml