今日はスクレイピングの話をします。 今回のターゲットは三菱東京UFJダイレクト。金融機関もウェブサービスを提供するようになり、金にまつわる情報を電子化しやすくなりましたが、かれらが API を提供しているわけではないので、私たちのほうで取得・加工をしてやる必要があります。今やウェブサイトであれば当然のように JavaScript を使っているわけなので、いわゆる mechanize、つまり HTML の解釈をおこない、リンクのクリックやフォームの送信をシンプルに実装するようなやり方でのスクレイピングはすでに無理筋だといえます。 もちろん今日においてはブラウザオートメーションという方法がすでにありますので、これを利用してやれば、なんの憂いもなく実際に人間が使うようなブラウザをプログラマティックに操作することができます。現在は Selenium WebDriver がデファクトで、これが使用す
RubyによるWebスクレイピング(2): Capybaraで対話的ブラウジングCapybaraを利用してウェブを操作・情報を取得する方法を紹介します。 はじめに 前回の記事では、WebのHTMLを取得し、Nokogiriを使ってパースする方法を紹介しました。 今回の記事では、Capybara を利用してウェブを操作・情報を取得する方法を紹介します。 Capybaraとは jnicklas/capybara - GitHub Capybaraはウェブアプリケーションのテストを行うためによく使われるライブラリです。しかしテストのみに留まらず、ドライバ(後述)を切り替えることによって実際のブラウザに近い動きをするためWebのスクレイピングに利用できます。 とりわけ、Nokogiri単体ではやや手に余る、ログインを必要とするWebスクレイピングやJavaScriptの実行を含んだ動作を簡潔な文法
ちょっとダルいポイントが有ったのでメモ程度に。 スクレイピング対象サイトとスクレイピングの流れは ページャで何ページか一覧ページがある 一覧ページのタイトルをクリックすると詳細ページが見れる 詳細ページの一部を使用 また他のタイトルをクリックしていく CSVで出力(別にいらないけどメモ代わりに。。) みたいな感じです。mechanizeだけでやります。 require 'mechanize' require 'csv' class ScrapingPages def initialize @agent = Mechanize.new @data = [] end def retrieve # 1ページ目から10ページ目までスクレイピングする (1..10).each do |i| page = @agent.get(url(i) each_section(page) do |section
スクレイピングのチュートリアルを書いてみた。 参考:http://nokogiri.rubyforge.org/nokogiri/Nokogiri.html まだまだたくさんのクラスやメソッドがあるが(読んでない)、HTMLのスクレイピングに限定すれば多分これくらいで十分。 2014-02-16追記 なんかたくさんブックマークされていることに気づいたので、サンプルコードのRuby1.9/2対応のアップデート。 Mechanize周りも修正。WWW::Mechanize → Mechanize 等 (0) 前提知識 Ruby、HTML、DOM、CSSセレクタまたはXPath (1) クラス構造の理解 Nokogiri::HTML::Document < Nokogiri::XML::Document < Nokogiri::XML::Node < Object Nokogiri::XML::
Rubyのライブラリ「Nokogiri」を使ってみました。 Nokogiriとは HTMLやXMLをパースするためのRubyライブラリ XPathやCSSセレクタを使ったパースが可能 公式:http://nokogiri.org/ 試した環境 ruby 1.9.3 簡単なサンプル Qiitaにあがっていたものを拝借 - Nokogiriで文字化けを防ぐ - Qiita sample.rb # -- coding: utf-8 require "open-uri" require "rubygems" require "nokogiri" # スクレイピングするURL url = "https://www.walmart.com.br/" charset = nil html = open(url) do |f| charset = f.charset f.read end doc = No
本記事は英語版ブログで2010年1月14日に公開された記事の翻訳版です。Engine Yard ブログでは少し趣向を変えて、コミュニティのメンバーによるゲスト投稿を募ることにしました。今回の (初めての!) ゲスト投稿は Aaron Patterson 氏によるものです。Ruby コミュニティの長年のメンバーである同氏は Nokogiri の作成者でもあります。Seattle.rb の開発者とともにコーディングに勤しむ一方、世界各地で行われる業界の会議やイベントに出向いて Nokogiri や他の Ruby 関連のトピックについて講演を行っています。 Nokogiri は XML ドキュメントと HTML ドキュメントを扱うためのライブラリです。Nokogiri は私の良き相棒 Mike Dalessio と一緒に開発しました。2 人とも Nokogiri を使って毎日 HTML や XM
import.ioとは import.ioは、データ化したいページのURLを入力するだけで、自動でデータ箇所を判断して情報を集めてくれるスクレイピングサービスです。 無料で利用することができ、セットアップも、データ収集用のトレーニングなども必要ありません。 URLを入力して、ボタンを押すだけという簡単さから、誰にでも利用できるデータ収集ツールだと思います。 以下では、その簡単な使い方や、利用例などを紹介したいと思います。 定期的なサイトへのスクレイピングは相手サイトの負荷になるので、一日に何度も何度も同一サイトに使用するのはやめましょう。加えて、取得したデータを、そのまま何かに利用すると著作権違反になる恐れもあります。 基本的な使い方import.ioの最大の特徴は、使い方の簡単さです。 以下では、その使い方の例として、IKEAのソファー検索結果ページのデータを取得してみたいと思います。
An easy-to-use Ruby web spider framework What is it? Anemone is a Ruby library that makes it quick and painless to write programs that spider a website. It provides a simple DSL for performing actions on every page of a site, skipping certain URLs, and calculating the shortest path to a given page on a site. The multi-threaded design makes Anemone fast. The API makes it simple. And the expressive
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く