ウェブスクレイピング (Web ハーベスティングまたは Web データ抽出) は、Web サイトから情報を抽出するコンピューター ソフトウェア技術です。 Mechanize ライブラリは、Web サイトとの対話を自動化するために使用されます。 Mechanize gem は、Cookie を自動的に保存して送信し、リダイレクトに従い、リンクをたどってフォームを送信できます。
フォームフィールドにデータを入力して送信できます。また、訪問したサイトを履歴として追跡します。 Nokogiri を利用してページを解析して関連するフォームとボタンを見つけ、Web フォームを操作するための簡素化されたインターフェイスを提供します。
-
ルビー 1.8.7、1.9.2、または 1.9.3
-
鋸切
Mechanize を始めるには:
ページを取得しましょう!
まず第一のこと。 mechanize が必須であることと、新しい mechanize オブジェクトをインスタンス化していることを確認してください。
「rubygems」が必要です 「機械化」が必要 エージェント = Mechanize.new 次に、作成したエージェントを使用してページを取得します。 Mechanize エージェントを使用して Google を取得しましょう。 ページ = エージェント.get ('http://google.com/') リンクの検索
Mechanize は、ページの取得、投稿、またはフォームの送信を行うたびに、ページ オブジェクトを返します。ページがフェッチされると、エージェントはページを解析し、ページ オブジェクトにリンクのリストを配置します。
Google のホームページを取得したので、すべてのリンクをリストしてみましょう。
page.links.each は |link| を行います。 link.text を挿入します 終わり
リンクをリストすることもできますが、Mechanize はクリックするリンクを見つけるのに役立つショートカットをいくつか提供します。テキストが「ニュース」であるリンクをクリックしたいとします。通常、次のようにする必要があります。
ページ = エージェント.ページ.リンク.find { |l| l.text == 'ニュース' }.click (または) page = Agent.page.link_with(:text => 'ニュース').click (または) Agent.page.links_with(:text => 'ニュース')[1].click (または) page.link_with(:href => '/something')。 フォームへの記入
Google の例を続けてみましょう。これまでに作成したコードは次のとおりです。
「rubygems」が必要です 「機械化」が必要 エージェント = Mechanize.new ページ = エージェント.get('http://google.com/')
ページをきれいに印刷すると、「f」という名前の 1 つのフォームがあり、いくつかのボタンといくつかのフィールドがあることがわかります。
ページ
フォームの名前がわかったので、それをページから取得してみましょう。
google_form = page.form('f')
コードをまとめて見てみましょう。
「rubygems」が必要です 「機械化」が必要 エージェント = Mechanize.new ページ = エージェント.get('http://google.com/') google_form = page.form('f') google_form.q = 'ルビーの機械化' ページ = エージェント.submit(google_form) ページ データのスクレイピング Mechanize は Nokogiri を使用して HTML を解析します。これはあなたにとって何を意味しますか?機械化ページをノコギリ オブジェクトのように扱うことができます。 Mechanize を使用してスクレイピングする必要があるページに移動した後、nokogiri メソッドを使用してそのページをスクレイピングします。 Agent.get('http://someurl.com/').search("p.posted")
Mechanize::Page#search に指定される式は、CSS 式または XPath 式の場合があります。
Agent.get('http://someurl.com/').search(".//p[@class='posted']")
Mechanize ライブラリは、Web サイトとの対話を自動化するために使用されます。 Mechanize gem は、Cookie を自動的に保存して送信し、リダイレクトに従い、リンクをたどってフォームを送信できます。フォームフィールドにデータを入力して送信できます。また、訪問したサイトを履歴として追跡します。 Nokogiri を利用して、関連するフォームとボタンのページを解析し、Web フォームを操作するための簡素化されたインターフェイスを提供します。
レールカーマ Ruby on Rails フレームワークの初期段階から取り組んでおり、 250RoR プロジェクト。最新の技術とツールに精通した 100 人以上の RoR 開発者チームを擁する RailsCarma は、あらゆる開発ニーズに応えるのに最適です。
喜んでご質問にお答えいたします。弊社の お問い合わせ ページに接続してください。
関連記事を読む :