Обучение соскабливание с Ruby. Я пытаюсь подсчитать количество исходящих ссылок на данной странице, но я не уверен, как сообщить Ruby, что я хочу, чтобы подсчитывались исходящие ссылки.Как я могу подсчитать количество исходящих ссылок на странице?
Мой текущий код:
require "open-uri"
# Collect info
puts "What is your URL?"
url = gets.chomp
puts "Your URL is #{url}"
puts "Loading..."
# Check keyword count
page = open(url).read
link_total = page.scan("</a>")
# obl_count = ???
link_count = link_total.count
puts "Your site has a total of #{link_count} links."
Как я могу закончить это?
Спасибо, я не знал об этом правиле. Вы знаете, как я буду разделять внутренние и исходящие ссылки? то есть подсчитывать ссылки на определенной странице Wiki для общего подсчета, а затем вычитать ссылки на странице, которые ссылаются на другие страницы Википедии? – Stn
1. В некоторых (редких случаях) тег '' используется для целей, отличных от ссылок, поэтому вам нужно также обнаружить 'href'. 2. Вам также необходимо сделать это, чтобы отфильтровать ссылки внутри сайта. 3. Часто есть одна ссылка на одну страницу. Вам нужно «uniq» соответствующий массив. – sawa
Вы можете проверить содержимое каждой ссылки, если хотите. Nokogiri возвращает массив специальных объектов, которые можно использовать для доступа к атрибуту 'href':' Nokogiri :: HTML (page) .css ('a'). Collect {| a | a.attr ('href')} 'Наивный тест состоял бы в том, чтобы увидеть, является ли первый символ ссылки'/', и в этом случае это локальная ссылка. Более надежный тест будет использовать модуль синтаксического анализа URI и 'URI.join', чтобы определить, является ли он одним из многих сайтов Википедии, с которыми он связан. – tadman