是否可以将No Url Foud
放入空白或丢失的锚标签中。提出这一点的原因是文本节点输出50 textNode,但URL仅输出47,因为某些锚是Missin或无用,导致下一个列表进入colaps并完全破坏了列表
请参阅屏幕截图td tag
| TD列表
我可以获得textNode
,而attributes
这里唯一的问题是TD列表中的某些锚固符,导致另一个列表崩溃
<table>
<tr>
<td><a href="url">TextNode</a></td>
</tr>
<tr>
<td><a href="url">TextNode</a></td>
</tr>
<tr>
<td><a href="url">TextNode</a></td>
</tr>
<tr>
<td>TextNode With No Anchor</td>
</tr> <tr>
<td><a href="url">TextNode</a></td>
</tr>
<tr>
<td>TextNode With No Anchor</td>
</tr>
</table>
company_name = page.css("td:nth-child(2)")
company_name.each do |line|
c_name = line.text.strip
# this will output 50 titles
puts c_name
end
directory_url = page.css("td:nth-child(1) a")
directory_url.each do |line|
dir_url = line["href"]
# this will output 47 Urls since some list has no anchor tag.
puts dir_url
end
您找不到没有的东西。您必须找到存在的东西,然后在其中搜索可能存在或可能不存在的元素。
喜欢:
directory = page.css("td:nth-child(1)")
directory.each do |e|
anchor = e.css('a')
puts anchor.any? ? anchor[0]['href'] : '(No URL)'
end