转换HTML文档中的URL?

时间:2011-03-17 11:10:48

标签: ruby regex url nokogiri

我在foo.com上有一个HTML文档,它包含链接,表单,资产URL(图像/ JavaScript)。

我想在没有框架的bar.com上提供服务。我还希望将所有相对URL转换为主机名为“bar.com”的绝对URL,资产URL和表单操作URL。

我从foo.com获取了HTML doument。使用Nokogiri在其中转换URL的后续步骤是什么?

2 个答案:

答案 0 :(得分:2)

Nokogiri是一个HTML / XML解析器。您可以按照official tutorial了解如何解析文档。

以下是一个例子:

require 'rubygems'
require 'nokogiri'
# Open the remote document, or from local file
require 'open-uri' # load open-uri library if the input is from the Internet
doc = Nokogiri::HTML(open(URL_OR_PATH_TO_DOCUMENT))

# Search for img tags:
doc.css('img').each do |img|
  # modify its attribute
  img['src'] = "#{URL_PREFIX}/#{img['src']}"
end

# print the modified html
puts doc.to_html

答案 1 :(得分:1)

require 'nokogiri'
require 'open-uri'

url = 'http://www.google.com'
doc = Nokogiri::HTML(open(url))
doc.xpath('//a').each do |d|
  rel_url = d.get_attribute('href')
  d.set_attribute('href', 'http://www.xyz.com/' + rel_url)
end