Rails:是否可以从其他网站导入内容?

时间:2015-01-30 01:05:12

标签: ruby-on-rails ruby ruby-on-rails-4

具体来说,我想从维基百科页面(公共领域)导入目录之前的第一个文本块。

我们说我有一个Model&#34; Resource&#34;,属性为xx是一个维基百科链接的字符串(例如。{{ 1}})。每个维基百科页面上的第一个文本块是x: "http://en.wikipedia.org/wiki/Lanny_McDonald"之前的<p>...</p>组。

我可以编写复制这些<div id="toc" class="toc">...</div>内容的代码并将其写入我的网站吗?

2 个答案:

答案 0 :(得分:2)

这称为Web Scraping. 讽刺地遵循这个维基百科链接和 考虑法律后果等。

Nokogiri是老大...

安装:

sudo gem install nokogiri -- --with-xml2-include=/usr/local/include/libxml2 --with-xml2-lib=/usr/local/lib

使用方法: 有一些方法可以使用xpath或css进行搜索,这使得事情变得简单。

# wiki_scraper.rb
require 'open-uri'
require 'nokogiri'

# Load in the url.
@doc = Nokogiri::HTML(open("http://en.wikipedia.org/wiki/Branch_predictor"))

# Print the first <p> element
puts @doc.xpath("/html/body/p[1]")

答案 1 :(得分:0)

您可以使用HttpWebRequest来检索整个页面,然后解析html。有一些工具可以将html转换为xhtml,此时你可以使用xml库来解析xhtml。