<p>这将得到所有名称:</p>
<pre><code> names = response.xpath('//table/tr[@class="novip"]//a[@class="novip-firmen-name"]//text()').extract()
</code></pre>
<p>它只返回467个名称:</p>
^{pr2}$
<p>当您检查所有tr时会得到空结果,因此当您没有找到一个带有<code>class="novip-firmen-name"</code>的tr时,您将输出默认值。在</p>
<p>如果我们拿前几张,你就能看到我们发生了什么:</p>
<pre><code>In [23]: for sel in response.xpath('//table/tr[@class="novip"]')[:5]:
print(sel.xpath('.//td[2]/a[@class="novip-firmen-name"]'))
....:
[<Selector xpath='.//td[2]/a[@class="novip-firmen-name"]' data=u'<a class="novip-firmen-name" href="/mede'>]
[]
[]
[]
[<Selector xpath='.//td[2]/a[@class="novip-firmen-name"]' data=u'<a class="novip-firmen-name" href="/mede'>]
</code></pre>
<p>如果只搜索具有<code>class="novip-firmen-name"</code>的锚定标记,则会得到您想要的结果:</p>
<pre><code> In [38]: for sel in response.xpath('//table/tr[@class="novip"]//a[@class="novip-firmen-name"]')[:5]:
print(sel.xpath('.//text()').extract_first().strip())
....:
Baumberger Hans Rudolf
Bettschart Robert
Bock Andreas
Brändli Heinrich
Buchser Marcel
</code></pre>
<p>或者,您可以搜索具有锚定标记的tds,这些tds与您想要获得这些tds的类一起:</p>
<pre><code>In [39]: for sel in response.xpath('//table/tr[@class="novip"]/td[a[@class="novip-firmen-name"]]')[:5]:
print(sel.xpath('./a/text()').extract_first()).strip()
....:
Baumberger Hans Rudolf
Bettschart Robert
Bock Andreas
Brändli Heinrich
Buchser Marcel
</code></pre>