Python:lxml xpath 获得两个不同的类

Mik*_*ike 1 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
Run Code Online (Sandbox Code Playgroud)

当我跑步时,我可以像下面这样

['33']
['Kevin']
Run Code Online (Sandbox Code Playgroud)

但是,我想同时得到两个像 = ['33','Kevin'] 我试过了

number = tree.xpath('//span[@class="number"]/text() or //div[@class="dddd13"]/span/text()')
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ers 5

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

number = tree.xpath('//span[@class="number"]/text() | //div[@class="dddd13"]/span/text()')
Run Code Online (Sandbox Code Playgroud)

演示:

>>> 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']
Run Code Online (Sandbox Code Playgroud)