我正在编写我的ruby(2.0)脚本,该脚本读取一个网页&它工作正常。然后我安装了ruby 2.2,突然我的nokogiri停止搜索子标签,但不是全部。它仍然找到一些子标签,有些不仅仅是在同一个脚本中找到。 我恢复到1.9,但它仍在做同样的事情。目前我已经安装了ruby 2.1.6。我正在使用Watir-webdriver和open-uri加载页面。 open-uri正在打开以下页面。
举个例子,这是我的代码:
htmlPage = '<html>
<head></head>
<body>
<table width="100%" border="1">
<tbody>
<tr valign="top">
<td width="38%" bgcolor="#EFEFEF">
<b>
<font size="4">NPL Listing History</font>
</b>
</td>
<td width="62%" bgcolor="#EFEFEF">
<b>
<font size="4">Dates</font>
</b>
</td>
</tr>
</tbody>
</table>
</body>
<html>'
page = Nokogiri::HTML(htmlPage)
puts page.css("table [border='1']")
这应该让我得到带有边框1的表,但我得到nil / null。
我做错了吗?或者我缺少的东西?
谢谢!
答案 0 :(得分:1)
你的问题就是空间。在CSS选择器中,空格是后代组合子,因此table [border='1']
表示table
的{{1}}属性等于border
的所有后代。您想要的是1
,这意味着&#34;所有table[border='1']
元素的table
属性等于border
。&#34;