Nasuta<http://www.nasuta.jp/>

2008年04月01日

ruby でHTMLを解析してアンカーテキストとリンクURLを抽出

参考にしたURL:
http://tam.qmix.org/wiki/Hpricot.html
http://labs.airs.co.jp/2007/7/11/site_explorer_api_hpricot_seo

簡単にできました。

require 'rubygems'
require 'hpricot'
require 'open-uri'
require 'kconv'

doc = Hpricot(open(ARGV[0]))

(doc/'a').each { |e|
s = e.inner_html.toutf8.gsub(/<.*?>/,'')
next if s == nil || s == ''
print "["
print s
print "]\n"
print e.attributes['href']
print "\n"
}


e.inner_html がアンカーテキストになりますが、UTF-8に変換し、タグをHTMLのタグを消去しています。


$ ruby crawler.rb http://nasuta.seesaa.net/ | head -10
[Nasuta開発ブログ]
http://nasuta.seesaa.net/
[Nasua]
http://www.nasuta.jp/
[http://www.nasuta.jp/]
http://www.nasuta.jp/
[ruby でRSSの解析 その2 はてぶのデータエクスポートデータの解析]
http://nasuta.seesaa.net/article/91728241.html
[http://hatena.g.hatena.ne.jp/bbs/3/13]
http://hatena.g.hatena.ne.jp/bbs/3/13


つぎは階層を追っかけてクローラーっぽい動きを実現させてみますかね。
posted by ふんじ at 18:55| Comment(0) | TrackBack(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。