タグ

ブックマーク / blog.takuros.net (8)

  • Lambdaで作るクローラー/スクレイピング - プログラマでありたい

    話題のAWS Lambda Advent Calendar 2014の14日目です。クロスポストで、クローラー/スクレイピング Advent Calendar 2014の14日目でもあります。 re:Inventで発表されて以来、注目のLambdaです。サーバを用意しなくても、バッチを直接実行できるとあって、ユースケースを考えるだけで夢が広がります。今年はクローラーを出したこともあって、Lambdaで作るクローラー/スクレイピングをテーマにします。 クローラー/スクレイピングとは? Webクローラーは、Webサイトを巡回してデータを取得するプログラムです。スクレイピングは、取得したデータから目的の情報を抜き出すことを指します。一般的には、クローラーの中に、スクレイピングの機能を包含していることが多いです。また、特定のページだけ取得してデータを抜き出すことを、スクレイピングと呼ぶことが多い

    Lambdaで作るクローラー/スクレイピング - プログラマでありたい
    cavorite
    cavorite 2014/12/14
  • 「第2回Webスクレイピング勉強会@東京」に参加&発表してきました - プログラマでありたい

    前回に引き続き、第2回Webスクレイピング勉強会@東京に参加し、発表もしてきました。今回は、ブログやサイトから文部分をどうやって抽出するのかというテーマです。ブログの文抽出とは、ヘッダーやフッダー、サイドメニューなど情報として不要な部分を排除して、文部分だけを抜き出す手法です。HTMLのタグを解析するルールベースと、自然言語処理を利用して文らしさを抽出するヒューリスティックな方法の2つについて、簡単に説明しています。 発表資料 サイト/ブログから文抽出する方法 from Takuro Sasaki 解説と質疑応答 そもそもブログやサイトの文を抽出する目的としては、2つくらいあるのではと思います。1つは、その記事そのものを読みたい場合。もう1つは、記事を統計解析などの元データとして利用したい場合があると思います。前者の場合は記事全文がないと意味がないし、後者は必ずしも記事全文は必

    「第2回Webスクレイピング勉強会@東京」に参加&発表してきました - プログラマでありたい
    cavorite
    cavorite 2014/08/20
  • プログラミング・レスで5分でサックリWebスクレイピング「kimonolabs」 - プログラマでありたい

    Rubyによるクローラー開発技法」で付録か何かで書こうか悩んだ末に書かなかったのが、kimonolabsの話です。kimonolabsは、クローラー/スクレイピングをオンラインで実行できるWebサービス(SaaS)です。クローラーを書いておいて何ですが、9割の人は自分でクローラーを作らずに、この手のサービスを利用すれば事足りると思います。(書かなかった理由は、Ruby縛りサービスの継続性とスケジュールの問題です。主に最後) kimonolabsとは? kimonolabsは、先述のとおりWebスクレイピングをしてくれるSaaSです。会員登録してChromeの拡張をいれれば、すぐに使えるようになります。一般的に、Webスクレイピングする場合は、次のような手順が必要です。 対象ページのダウンロード ダウンロードしたページから、特定の箇所を抜き出す 抜き出したデータの保存 対象ページのダウン

    プログラミング・レスで5分でサックリWebスクレイピング「kimonolabs」 - プログラマでありたい
    cavorite
    cavorite 2014/08/13
  • FireFoxやChromeを使って任意のノードのXPathを簡単に抽出する方法について - プログラマでありたい

    Ruby製の構文解析ツール、Nokogiriの使い方 with Xpath」というエントリーで、Nokogiriの使い方に絡めてXPathの記述をちょこっと書きました。XPathは、XMLやHTMLのノードを指定する為の構文です。XPathを使うことにより、HTML中のタグも一意に指定することが出来ます。例えば、titleタグをXPathで指し示すのであれば、ルートノードであるhtmlタグの下のheadタグの下のtitleタグという構造から/html/head/titleといった表記になります。複数ある要素の場合、img[1]といった配列で指定することも可能なので、基的には全てのタグを指定出来ます。XPathは色々なところで使われるようになっているので、スクレイピングに限らず覚えておいたら便利です。 しかし、問題が一点あります。目的のノードのXPathを、どうやって抽出するのか。XPa

    FireFoxやChromeを使って任意のノードのXPathを簡単に抽出する方法について - プログラマでありたい
    cavorite
    cavorite 2014/04/21
  • Ruby製の構文解析ツール、Nokogiriの使い方 with Xpath - プログラマでありたい

    RubyHTMLやXMLをパースする構文解析ツールの定番は、Nokogiriです。スクレイピングする際の必需品で、なくてはならないモジュールの1つです。ただ色々なことが出来る反面、どこから取りかかれば良いのか解り難い部分もあります。自習を兼ねて、Nokogiri概要と主要な機能を紹介してみます。 Nokogiriとは何か? ReademeによるとNokogiriとは、「HTMLとXMLとSAXとXSLTとReaderのパーサー」で、特徴としては、XPathCSS3セレクター経由で探索する機能を持つことのようです。他にもHTMLやXMLのビルダーの機能を持っていますが、HTMLとXMLのパーサー(構文解析器)と覚えておけばよいでしょう。 Nokogiriのクラス構造 Nokogiriは、なかなか巨大なライブラリです。10以上のモジュールと70以上のクラスで構成されていて、yardでダイア

    Ruby製の構文解析ツール、Nokogiriの使い方 with Xpath - プログラマでありたい
    cavorite
    cavorite 2014/04/15
  • あらためてRuby製のクローラー、"anemone"を調べてみた - プログラマでありたい

    3年ほど前に、Ruby製のクローラー"anemone"を紹介しました。その当時から完成度が高く、Rubyでクローラーを使う場合はanemoneを利用してきました。最近、他に新しくて良いのがないか調べましたが、機能面の網羅性という意味でanemoneを超えるものは見つけられませんでした。そこで改めてanemoneのソースを読んでみたところ、クローラーが必要とする機能を必要最小限で実装され、やはり中々良い出来です。冬休みの宿題ではないですが、勉強の意味を兼ねてソースを追っていくことにします。 Anemoneが利用しているライブラリ一覧 anemoneが利用しているライブラリは、4種類に分類できます。 Ruby標準or一般的なライブラリ データ取得で利用しているライブラリ データ解析で利用しているライブラリ データ保存で利用しているライブラリ この分類別に構造をみるとわかりやすいので、順番に追っ

    あらためてRuby製のクローラー、"anemone"を調べてみた - プログラマでありたい
    cavorite
    cavorite 2014/01/05
  • 複数並行可能なRubyのクローラー、「cosmicrawler」を試してみた - プログラマでありたい

    最近のRubyのクローラーは、EventMachineを使って並列化するのが流行のようです。EventMachineは、非同期処理をお手軽に実装できるフレームワークです。Rubyのスレッド機能との違いは、Reactorパターンを使いシングルスレッドで実装している点です。こちらのブログが詳しいので参考になります。 「見えないチカラ: 【翻訳】EventMachine入門」 EventMachineを使うと、イベント・ドリブンの処理を簡単に実装出来ます。使い方は簡単ですが、通常の同期処理やスレッドをつかった処理に比べると、どうしてもコードの記述量は多くなります。今回の例である並列化してクローラーを走らせるという用途であれば、短時間で多くのサイトにアクセスするのが目的です。イベント・ドリブンで並列化処理を実装するのが目的ではないはずです。その辺りの面倒くさい処理を実装したライブラリがcosmic

    複数並行可能なRubyのクローラー、「cosmicrawler」を試してみた - プログラマでありたい
    cavorite
    cavorite 2014/01/03
  • オープンソースのRubyのWebクローラー"Anemone"を使ってみる - プログラマでありたい

    Webサイトの調査をしようと思い、サイトクローラーが必要になりました。 各言語ごとに色々あるので何を使うか悩むところですが、Rubyでお手軽にということでAnemoneを採用しました。 ちなみに他の言語だと、下記のうちのどれかが良いのではないでしょうか? Java:Nutch、S2Robot Perl:Gungho 余談ですが日語で検索する場合、WEBクローラーで検索するかWEBスパイダーで検索するか悩みます。英語だとWeb SpiderかWeb Crawlerです。どちらかといえばWeb Spiderが一般的のようです。日だとWEBクローラーの方が目的のものに辿り着きやすいような気がします。うーん、悩ましい。 Anemoneのインストール手順 Anemoneは、nokogiriを使います。 nokogiriが入っていれば、すんなりインストールも出来ると思います。 ちなみにnokogi

    オープンソースのRubyのWebクローラー"Anemone"を使ってみる - プログラマでありたい
  • 1