Ruby 如何计算一个页面的出站链接数量?

Ruby 如何计算一个页面的出站链接数量?,ruby,scraper,open-uri,Ruby,Scraper,Open Uri,用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("&

用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."
需要“打开uri”
#收集信息
放置“你的URL是什么?”
url=gets.chomp
放入“您的URL为#{URL}”
放入“加载…”
#检查关键字计数
页面=打开(url)。读取
链接总数=页面扫描(“”)
#obl_计数=???
link\u count=link\u total.count
放置“您的站点总共有#{link\u count}个链接。”
我怎样才能完成这项工作呢?

正如,你可能应该用它来为你做脏活

简单来说,您可以使用CSS选择器查找标记。从那里很容易计算:

Nokogiri::HTML(page).css('a').length
您可以使用:

Anemone是一个Ruby库,它使编写蜘蛛网站程序变得快速而轻松。它提供了一个简单的DSL,用于在站点的每个页面上执行操作、跳过某些URL以及计算到站点上给定页面的最短路径


多线程设计使海葵快速。API使它变得简单。Ruby的表现力使其功能强大。

谢谢,我不知道这个规则。你知道我将如何区分内部链接和外部链接吗?i、 e.计算特定Wiki页面上的链接总数,然后减去页面上链接到其他Wikipedia页面的链接?1。在某些(罕见)情况下,
标记用于链接以外的目的,因此除此之外,您还需要检测
href
。2.您还需要这样做来过滤掉站点内的链接。3.通常,一个页面有多个链接。您需要
uniq
相关数组。如果愿意,您可以检查每个链接的内容。Nokogiri返回一个特殊对象数组,可用于访问
href
属性:
Nokogiri::HTML(page.css('a')。collect{a | a.attr('href')}
一个简单的测试是查看链接的第一个字符是否为
//code>,在这种情况下,它是本地链接。一个更健壮的测试将使用URI解析模块和
URI.join
来确定它是否是被链接到的众多Wikipedia站点之一。