如何使用Ruby on Rails操作DOM

正如标题所说,我有一些DOM操作任务。 例如,我想: – 找到所有具有蓝色的H1元素。 – 找到所有大小为12px的文本。 – 等..

我怎么能用Rails做到这一点?

谢谢.. :)

更新

我一直在研究如何根据本文提取网页内容 – > http://www.springerlink.com/index/A65708XMUR9KN9EA.pdf

该步骤的摘要是:

  1. 获取我想要提取的url(单个网页)
  2. 根据一些视觉规则从网页中获取一些元素(例如:抓住所有具有蓝色的H1
  3. 用我的算法处理元素
  4. 将结果保存到我的数据库中。

-对不起,我的英语不好-

如果你要做的是在rails应用程序中操作HTML文档,你应该看看Nokogiri 。

它使用XPath来搜索文档。 通过以下内容,您可以在文档中找到任何带有“blue”css类的h1。

require 'nokogiri' require 'open-uri' doc = Nokogiri::HTML(open('http://www.stackoverflow.com')) doc.xpath('//h1/a[@class="blue"]').each do |link| puts link.content end 

之后,如果您尝试做的事情确实在解析当前页面dom,那么您应该看看JavaScript和JQuery。 Rails不能那样做。

为了可靠地挑选出网页上任意元素的颜色,您需要对浏览器进行反向工程(以准确地考虑样式表,标记黑客,破损的标签,图像等)。

一种更简单的方法是将现有的浏览器(例如gecko)嵌入到您制作的自定义应用程序中。

当您的蜘蛛浏览页面时,它会将它们传递给您嵌入的gecko实例,您可以使用getComputedStyle来提取单个元素的颜色。

你最初提到过想在这个项目中使用Ruby on Rails,Rails是一个用于编写表示应用程序的框架,并且非常适合这样的项目。

作为一个起点,我建议您查看RubyGnome,特别是RubyGnome的Gtk :: MozEmbedfunction。