• ベストアンサー

ネット上から自動的に文字情報を収集したい

ネット上から自動的に文字情報を収集したい WEBサイトの中から自動的に文字情報を集めるようなプログラムを作成したいのですが、何から始めてよいのかわかりません。 プログラミングの知識と経験はありますが、計算とか論理演算だけで、直接ネットワークから情報を収集するというところが私はわかっておりません。 ネットから自動的に情報収集をするという目的で、なにか覚えておくべきキーワードであったり調べる内容を提示していただけたら嬉しいです。 JavaとかC言語ならやった経験はあります。他の言語でも良いです。 参考になるサイトや参考書を教えていただけたら嬉しいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

キーワードとしては、スクレイピング(scraping:こすって剥ぎ取る)。ウェブサイトにアクセスしてHTMLから情報を抜き取ることをそう言います。あるいはスパイダー。あちこちのサイトを回って情報を集めて回ること。 専門の本がありますが、かなり古いので、今買うのはお勧めできません。図書館にあれば読んでみるのもいいかと。 http://www.amazon.co.jp/dp/4873111870 Javaはわかりませんが、Rubyだと Mechanizeというブラウザ代替ライブラリとNokogiriというHTML解析ライブラリを使います。 単純なページだとNokogiriだけでできます。こんな感じ。 # 天気予報のページにアクセスする doc = Nokogiri.HTML(open("http://weather.asahi.com")) # そこから、条件にあったtableタグ中のtrタグを探す。各trタグについて繰り返し doc.search("//table[@class='font12' and @bgcolor]//tr[position()>1]").each do |tr| # 1番目のtdタグが地名  place = tr.search("td[1]").text # 2番目のtdタグが天気。imgタグのaltを見る  weather = tr.search("td[2] > img").map{|img| img["alt"]}.join("|") # sjisに変換して出力  puts "#{place}\t#{weather}\n".tosjis end ログインが必要など、目的ページに行くまでページ遷移が必要な場合は、Mechanizeを使います。

IWNM_SP
質問者

お礼

回答ありがとうございました