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ページのリンク数をカウントしてから、ページ上のリンクを減算して他のWikipediaページにリンクしますか? – Stn
1.いくつかの(まれな)ケースでは、リンク以外の目的で ''タグが使用されているので、それに加えて 'href'を検出する必要があります。 2.サイト内のリンクを除外するには、それを行う必要もあります。 3.多くの場合、1ページに複数のリンクがあります。関連配列をuniqする必要があります。 – sawa
好きな場合は、各リンクの内容を調べることができます。 Nokogiriは 'href'属性にアクセスするために使用できる特別なオブジェクトの配列を返します:' Nokogiri :: HTML(page).css( 'a')。collect {| a | a.attr( 'href')} 'リンクの最初の文字が'/'であるかどうかを調べるのは簡単なテストです。この場合はローカルリンクです。より堅牢なテストでは、URI解析モジュールとURI.joinを使用して、リンクされている多くのWikipediaサイトの1つであるかどうかを判断します。 – tadman