Lernen, Kratzen mit Ruby. Ich versuche, die Anzahl der ausgehenden Links zu zählen, die eine bestimmte Seite hat, aber ich bin mir nicht sicher, wie ich Ruby mitteilen soll, dass nur die ausgehenden Links gezählt werden sollen.Wie kann ich die Anzahl der ausgehenden Links einer Seite zählen?
Mein aktueller Code:
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."
Wie kann ich dieses vollenden?
Danke, ich wusste nicht über diese Regel. Haben Sie eine Idee, wie ich die internen und ausgehenden Links trennen würde? Zählen Sie Links auf einer bestimmten Wiki-Seite für die Gesamtzahl, und subtrahieren Sie dann die Links auf der Seite, die mit anderen Wikipedia-Seiten verlinkt sind? – Stn
1. In einigen (seltenen) Fällen wird das "" -Tag für andere Zwecke als Links verwendet, daher müssen Sie 'href' zusätzlich erkennen. 2. Sie müssen das auch tun, um die Links innerhalb der Site herauszufiltern. 3. Oft gibt es mehr als einen Link zu einer einzelnen Seite. Sie müssen das relevante Array "uniq". – sawa
Sie können den Inhalt jedes Links überprüfen, wenn Sie möchten. Nokogiri gibt eine Reihe von speziellen Objekten zurück, die verwendet werden können, um auf das 'href'-Attribut zuzugreifen: 'Nokogiri :: HTML (Seite) .css (' a '). Collect {| a | a.attr ('href')} 'Ein naive Test wäre es zu sehen, ob das erste Zeichen eines Links'/'ist. In diesem Fall ist es ein lokaler Link. Ein robusterer Test würde das URI-Parsing-Modul und 'URI.join' verwenden, um festzustellen, ob es sich um eine der vielen Wikipedia-Seiten handelt, mit denen eine Verbindung hergestellt wird. – tadman