我正在开发一个使用 lxml 来废弃页面的 python 项目,并且我面临着检索 span 类属性名称的挑战。html 片段如下:
<tr class="nogrid">
<td class="date">12th January 2016</td>
<td class="time">11:22pm</td>
<td class="category">Clothing</td>
<td class="product">
<span class="brand">carlos santos</span>
</td>
<td class="size">10</td>
<td class="name">polo</td>
</tr>
....
Run Code Online (Sandbox Code Playgroud)
如何检索下面的跨度类属性的值:
<span class="brand">carlos santos</span>
Run Code Online (Sandbox Code Playgroud)
您可以使用以下 XPath 来获取属于 class的直接子元素的元素class的属性:spantdproduct
//td[@class="product"]/span/@class
Run Code Online (Sandbox Code Playgroud)
工作演示示例:
from lxml import html
raw = '''<tr class="nogrid">
<td class="date">12th January 2016</td>
<td class="time">11:22pm</td>
<td class="category">Clothing</td>
<td class="product">
<span class="brand">carlos santos</span>
</td>
<td class="size">10</td>
<td class="name">polo</td>
</tr>'''
root = html.fromstring(raw)
span = root.xpath('//td[@class="product"]/span/@class')[0]
print span
Run Code Online (Sandbox Code Playgroud)
输出 :
Brand
Run Code Online (Sandbox Code Playgroud)