比方说,我有一个生病的HTML页面:带过滤器的引入nokogiri next_element
<table>
<thead>
<th class="what_I_need">Super sweet text<th>
</thead>
<tr>
<td>
I also need this
</td>
<td>
and this (all td's in this and subsequent tr's)
</td>
</tr>
<tr>
...all td's here too
</tr>
<tr>
...all td's here too
</tr>
</table>
在BeautifulSoup,我们能够得到<th>
,然后调用findNext("td")
。 Nokogiri调用next_element
,但这可能不会返回我想要的(在这种情况下,它将返回tr
元素)。
有没有办法过滤Nokogiri的next_element
电话?例如next_element("td")
?
编辑
为了澄清,我会看很多网站,其中大部分病形成方式不同。
举例来说,接下来的网站可能是:
<table>
<th class="what_I_need">Super sweet text<th>
<tr>
<td>
I also need this
</td>
<td>
and this (all td's in this and subsequent tr's)
</td>
</tr>
<tr>
...all td's here too
</tr>
<tr>
...all td's here too
</tr>
</table>
我可以不承担任何其他结构比会有tr
s表示有类what_I_need
感谢您指出了这一点。我最初的问题并不清楚,我不能确定页面结构超出带有'tr's的'table'。我已经更新了这个问题来反映这一点。 – 2012-07-12 22:17:32
重要的是要清楚。有很多不同的方法可以获得你想要的位置。如果您事先不知道页面的布局是什么,您可以编写几个不同的尝试,然后运行每个尝试,然后查看哪个返回值为''查找。如果你有价值,你就很好。如果你不尝试另一个。 – 2012-07-12 22:22:59
我希望找到一个更“通用”的搜索选项。我希望能够说,我找到了我正在寻找的标记,现在返回所有标记后面的'
相关问题