xpath为以下查询返回空列表。 需要获取UrlOne1,UrlOne2,DataOne1,DataOne,DataOne2
<table>
<thead></thead>
<tbody class="dataContainer">
<tr class="tableLight">
<td><a href="UrlOne1" class="ClassOne1">DataOne1</a></td>
<td> <a href="UrlOne2"><span class="badge"></span> <span class="long">DataOne</span> <span class="short">DataOne</span> </a> </td>
<td class="hide-s"><span class="ClassOneCN"></span> <span class="ClassOne2">DataOne2</span></td></tr>
<tr class="tableLight">
<tr class="tableLight">
<tr class="tableLight">
为以下项返回null[]
response.xpath('//*[@class="dataContainer"]/a/@href')
response.xpath('//*[@class="tableLight"]')
response.xpath('//*[local-name() = "tr" and class="tableLight"]')
但是下面的代码可以很好地处理答案:['>;]
response.xpath('//*[@class="dataContainer"]')
对于第一个xpath
//*[@class="dataContainer"]/a/@href
//
是后代或自轴,而/
是当前节点的直接子节点。在这种情况下a
不是直接的子级,因此需要使用//
:第二个路径
//*[@class="tableLight"]
应该可以使用,但是如果您知道它是一个tr
标记,请使用它:对于第三个xpath
//*[local-name() = "tr" and class="tableLight"]
class
是一个属性,因此您需要使用@class
(但我建议改用上面的xpath):至于您所需要的(
UrlOne1, UrlOne2, DataOne1, DataOne, DataOne2
),您可以获得a
元素,比如response.xpath('//tr[@class="tableLight"]//a')
,然后检索每个a
元素的href
属性或文本。或者直接获取
href
属性和文本:相关问题 更多 >
编程相关推荐