Python:lxml xpath获得两个不同的类 [英] Python : lxml xpath get two different classes

查看:149
本文介绍了Python:lxml xpath获得两个不同的类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的示例Python代码

Here is my sample Python code

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

当我跑步时,我会像下面这样

When I ran I could get like below

['33']
['Kevin']

但是,我想一次获得两者,例如= ['33','Kevin'] 我尝试过

However, I would like to get both at once like = ['33','Kevin'] I tried

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

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

I couldn't get the value. What is syntax to get two different classes?

推荐答案

使用|联合运算符将多个完整路径表达式的结果结合在一起:

Use the | union operator to join the results of multiple full path expressions:

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获得两个不同的类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆