我试图削减一些立法。这是代码的摘录:
<h5>
<span class="expanderComparator clickable"> </span>
<span class="context-menu"> </span>
<a href="index.html#a340">
<strong>Art. 340</strong>
</a>
<sup>
<a href="#fn-#a340-1">1</a>
</sup>
<a href="index.html#a340">Mesures conservatoires</a>
</h5>
每篇文章都会重复这段代码(可能超过一千),但其结构基本上采用相同的模式。
我试图建立一个数组:
a340 = { 'number' => '340', 'title' => 'Mesures conservatoires'}
所以显然我看了Nokogiri,这似乎是合适的。以下是问题:
此作品<sup><a href="#fn-#a340-1">1</a></sup>
需要替换为空格(&#34;&#34;)=&gt; h1 = @doc.at_xpath "//sup/a" h1.content = " "
需要删除所有span
和a
代码
最终,只保留h5
标记内的内容(因为还有其他膨胀,不需要)=&gt; .css("h5").text
我基本上能够达到以上所有目标,但不知怎的,我无法将它们链接到一个逻辑软件中。
非常感谢任何帮助!
警告:它只需要纯粹的红宝石,所以没有铁轨:(
答案 0 :(得分:0)
也许可以访问'#lawcontent .collapseable h5'
:
require 'nokogiri'
require 'open-uri'
url = 'https://www.admin.ch/opc/fr/classified-compilation/20061121/index.html'
doc = Nokogiri.HTML(open url)
articles_hash = doc.css('#lawcontent .collapseable h5').map do |element|
{
'number' => element.css('a strong').text.sub(/\AArt. /, ''),
'title' => element.css('a:last-child').text.sub(/\AArt. \d+ |\A\d+/, '')
}
end
puts articles_hash
# [
# {"number"=>"1", "title"=>"Objet"},
# {"number"=>"2", "title"=>"Causes de nature internationale"},
# {"number"=>"3", "title"=>"Organisation des tribunaux et des autorit\u00E9s de conciliation"},
# ...
# ]
这将迭代并获得文章#407。