【发布时间】:2015-06-11 08:41:06
【问题描述】:
我将 Nokogiri 安装到 Rails 项目中,它目前可以毫无问题地运行“Nokogiri HTML Parser Example”。
我正在尝试创建一个 Rails 项目,该项目将解析来自IMDB 的电影脚本,进行字数统计,然后显示该部分中出现次数最多的单词。我已经确定脚本保存在“表”中:
<table width=100% border=0 cellpadding=5 class=scrtext><tr><td class=scrtext><pre><html><head></head><body>
<b>PERSON1</b>
They say some dialogue
<b>PERSON2</b>
They say some more
</pre></table>
我也想排除 <b>/<b> 括号内的文本。
我已经在控制器中像上面的示例一样进行了设置,并且已经获取了 URL:
#Save as a temp. file
tmp_file = open('http://www.imsdb.com/scripts/Authors-Anonymous.html')
#Parse the temp. file
doc = Nokogiri::HTML(tmp_file)
我很难理解如何设置 CSS 约束来获取此表。我知道它在<pre>/<pre> 标签之间,我已经为此学习了许多教程,但我仍然不明白如何设置这些约束。
我觉得后面的代码应该是这样的,但我不太确定:
doc.search("//pre")
如何设置 Nokogiri 的 CSS 约束来拉取两个标签(例如 <pre></pre>)之间的内容,然后过滤掉输出中会出现的不相关标签(例如 <b></b>)?
【问题讨论】:
-
您可以使用
css方法选择器:doc.css('pre b'),它将在每个<pre>标签中获取每个<b>标签 -
另外作为补充(因为我无法发布更多链接),我一直在看 Nokogiri 网站上的教程 (nokogiri.org/tutorials/…) 和各种 StackOverflow 问题 (stackoverflow.com/questions/12478272/…),但是设置这个我仍然很困惑。
-
欢迎您 - 您应该在答案部分而不是问题中发布您的答案。也无需将问题标记为已解决,因为接受答案就是这样做的。
-
但仅发布您的答案如果它是您选择的答案。
标签: ruby-on-rails ruby css-selectors nokogiri