Конвертировать URL в HTML-документе? - PullRequest
1 голос
/ 17 марта 2011

У меня есть HTML-документ на foo.com, который состоит из ссылок, форм, URL-адресов ресурсов (изображения / JavaScript).

Я хочу подать его на bar.com без фреймов. Я также хочу, чтобы все относительные URL-адреса были переведены в абсолютные URL-адреса с именем хоста "bar.com", URL-адресами ресурсов и URL-адресами действий формы.

Я получил HTML-документ на foo.com. Каковы следующие шаги для преобразования URL-адресов в нем с помощью Nokogiri?

Ответы [ 2 ]

2 голосов
/ 17 марта 2011

Nokogiri - это анализатор HTML / XML.Вы можете выполнить официальное руководство , чтобы узнать, как анализировать документ.

Вот пример:

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 голос
/ 17 марта 2011
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
...