Я хочу обработать все ссылки, кроме внешних со всего веб-сайта. Есть ли простой способ определить, что ссылка является внешней и пропустить ее?обрабатывать все ссылки, кроме внешних (ruby + mechanize)
Мой код выглядит так далеко, как (сайт URL передается через параметр командной строки)
Я использую Mechanize (0.9.3) и рубин 1.8.6 (2008-08-11 номера патчей 287) [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]))
очень хороший ответ. Спасибо вам за это. – Radek
Спасибо. Это происходит из-за того, что он ударил в стену несколько раз, делая так, как я думал, будет работать, но нет. Нет никакой гарантии, что это будет охватывать каждую ситуацию, но использование URI помогает устранить множество неожиданных проблем. :-) –