擅长:python、mysql、java
<p>我不能确切地说是什么问题,因为我没有您要解析的源数据。如果你把最小的部分粘贴起来会很有帮助。在</p>
<p>但无论如何,你有不止一个选择来实现这一点。我建议将CSS选择器与XPath选择器结合使用,如下所示:</p>
<pre><code>response.xpath("//*[@id='mw-content-text']").css("table.wikitable.sortable.jquery-tablesorter")
</code></pre>
<p>但是如果只想使用XPath,可以使用<em>contains()</em>:</p>
^{pr2}$
<p>但这可能会很棘手,因为它要求表<em>类</em>定义得一模一样,它不允许类的不同顺序。如果你想报道这些案件,我建议你这样使用:</p>
<pre><code>response.xpath("//*[@id='mw-content-text']/table[contains(@class,'wikitable') and contains(@class, 'sortable') and contains(@class, 'jquery-tablesorter')]")
</code></pre>
<p>您可以找到更多关于废选择器<a href="http://doc.scrapy.org/en/latest/topics/selectors.html" rel="nofollow">in the official documentation</a>的信息。在</p>
<p><strong>编辑:</strong><br/>
正如Rahul所注意到的,这里的问题是类<code>jquery-tablesorter</code>实际上是由jQuery<a href="http://tablesorter.com/docs/" rel="nofollow">tablesorter</a>插件动态添加的,因此这个类在scrapy响应中不可见,因为还没有执行JS。要在解决方案中反映这一点,不应在选择器表达式中包含<code>jquery-tablesorter</code>。在</p>