1

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."

どうすればこれを完了できますか?

4

2 に答える 2

2

正規表現を使用してHTMLを解析してはならないのと同じように、おそらくnokogiriを使用して汚い作業を行う必要があります。

簡単に言うと、CSSセレクターを使用してタグを見つけることができます。そこから数えるのは簡単です:

Nokogiri::HTML(page).css('a').length
于 2012-04-11T03:36:59.117 に答える
0

次を使用できます。

http://anemone.rubyforge.org/

Anemoneは、Webサイトをスパイダーするプログラムをすばやく簡単に作成できるRubyライブラリです。これは、サイトのすべてのページでアクションを実行し、特定のURLをスキップし、サイトの特定のページへの最短パスを計算するための単純なDSLを提供します。

マルチスレッド設計により、Anemoneは高速になります。APIはそれを簡単にします。そして、Rubyの表現力はそれを強力にします。

于 2013-10-18T12:29:03.983 に答える