擅长:python、mysql、java
<p>我想你想要的是</p>
<pre><code> tester = titles.xpath('(//*[@id="div_a1"]/div[3])[1]').extract()
</code></pre>
<p>如果通过“限制提取”,您的意思是只检索结果集的第一个节点。但是与其这样做,不如找到一个只返回1个结果的XPath表达式,而不是总是选择第一个结果。你知道吗</p>
<hr/>
<p>当然,在Python方面也有解决这个问题的方法。不太熟悉Python,但在我看来<code>tester</code>是一种数组结构,因此应该可以只输出第一项,类似于</p>
<pre><code>print tester[0]
</code></pre>
<hr/>
<p><strong>编辑</strong>:同样,对Python不熟悉,但是如果在<code>for</code>循环中应用Xpath表达式,那么输出是冗余的就不足为奇了,是吗?您选择所有<code>p</code>元素,然后在所有元素上循环,因此<code>//*[@id="div_a1"]/div[2]</code>被多次提取。你知道吗</p>
<pre><code>def parse(self, response):
hxs = HtmlXPathSelector(response)
root = hxs.select("/")
retester = root.xpath('//*[@id="div_a1"]/div[2]').extract()
tester = root.xpath('//*[@id="div_a1"]/div[3]').extract()
print tester, retester
</code></pre>
<p>也许您甚至不必首先选择某些内容,就可以直接将XPath表达式应用于<code>hxs</code>。你知道吗</p>