我遇到过如何从当前元素中找到第一级孩子的问题?例如我有html:
<table>
<tr>abc</tr>
<tr>def</tr>
<table>
<tr>second</tr>
</table>
</table>
Run Code Online (Sandbox Code Playgroud)
我正在使用Nokogiri轨道:
table = page.css('table')
table.css('tr')
Run Code Online (Sandbox Code Playgroud)
它返回所有tr
内部table
.但是我只需要2个表格的第一级.
mu *_*ort 22
当你这样说:
table = page.css('table')
Run Code Online (Sandbox Code Playgroud)
你抓住两个桌子而不仅仅是顶级桌子.因此,您可以返回到文档根目录并使用仅与第一个表中的行匹配的选择器,如mosch所说,或者您可以修复table
为只有外部表格,如下所示:
table = page.css('table').first
trs = table.xpath('./tr')
Run Code Online (Sandbox Code Playgroud)
甚至这个(取决于HTML的真实结构):
table = page.xpath('/html/body/table')
trs = table.xpath('./tr')
Run Code Online (Sandbox Code Playgroud)
或许其中一个table
(再次感谢Phrogz):
table = page.at('table')
table = page.at_css('table')
# or various other CSS and XPath incantations
Run Code Online (Sandbox Code Playgroud)
你可以做
rows = page.css('body > table > tr')
Run Code Online (Sandbox Code Playgroud)
也许你必须让选择器适应你的容器元素(我在这里选择'body')
归档时间: |
|
查看次数: |
10029 次 |
最近记录: |