Я хочу обрабатывать все ссылки, кроме внешних со всего веб-сайта. Есть ли простой способ определить, что ссылка является внешней, и пропустить ее?
Мой код пока выглядит так (URL-адрес сайта передается через аргумент командной строки)
Я использую mechanize (0.9.3) и ruby 1.8.6 (уровень обновления 287 от 11 августа 2008 г.) [i386-mswin32]
Обратите внимание, что веб-сайт может использовать относительный путь, поэтому нет хоста/домена, и это немного усложняет его.
require 'mechanize'
def process_page(page)
puts
puts page.title
STDIN.gets
page.links.each do |link|
process_page($agent.get(link.href))
end
end
$agent = WWW::Mechanize.new
$agent.user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4'
process_page($agent.get(ARGV[0]))