ruby/railsを使用してWebサイトから特定のコンテンツをコピーしたいと思います。必要なコンテンツは、divで分割されたマーキーhtmlタグ内にあります。ルビーを使用してこのコンテンツにアクセスするにはどうすればよいですか?もっと正確に言うと、私はある種のルビーGUI(できれば靴)を使いたいと思っています。どうすればいいのですか?
2 に答える
私が正しく理解しているのであれば、WebサイトスクレイパーへのGUIインターフェイスが必要です。もしそうなら、あなたは自分でそれを構築しなければならないかもしれません。
ウェブサイトをスクレイプする最も簡単な方法は、nokogiriを使用するか、宝石を機械化することです。基本的に、これらのライブラリにWebサイトのアドレスを指定し、XPath機能を使用してDOMからテキストを選択します。
これは実際にはRailsの質問ではありません。これは、Rubyを使用して実行し、Rails、Sinatra、Padrinoを使用して表示する場合があります。毒を選択してください。
使用できるHTTPクライアントはいくつかあります。
Open-URIにはRubyが付属しており、最も簡単です。Net :: HTTPはRubyに付属しており、標準のツールボックスですが、低レベルであるため、より多くの作業を行う必要があります。HTTPClientとTyphoeus+Hydroはスレッド化が可能で、高レベルと低レベルの両方のインターフェースを備えています。
返されたHTMLを解析するには、Nokogiriを使用することをお勧めします。それは非常にフル機能で堅牢です。
require 'nokogiri'
require 'open-uri'
doc = Nokogiri::HTML(open('http://www.example.com'))
puts doc.to_html
解析する必要のあるページに到達する前に、ログイン画面をナビゲートしたりフォームに入力したりする必要がある場合は、Mechanizeを参照することをお勧めします。内部的にはNokogiriに依存しているため、Nokogiriドキュメントを要求し、Mechanizeが目的のURLを取得したら解析することができます。
ダイナミックHTMLを処理する必要がある場合は、さまざまなWATIRツールを調べてください。それらはさまざまなWebブラウザーを駆動し、ブラウザーから見たコンテンツにアクセスできるようにします。
必要なコンテンツまたはデータを取得したら、それをRailsページ内のテキストに「再利用」できます。