使用 lxml 检索类属性的名称

Sun*_*kor 2 html python lxml

我正在开发一个使用 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)

har*_*r07 5

您可以使用以下 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)