More Related Content
PDF
PPTX
PDF
PDF
JAWSUG architecture-crowler PDF
PDF
PDF
Innovation eggcloudnative PPTX
What's hot
PPTX
PDF
「新しい」を生み出すためのWebアプリ開発とその周辺 PDF
ODP
高トラフィックサイトをRailsで構築するためのTips基礎編 PDF
PPTX
PDF
PDF
JekyllとBootstrapを使って静的なブログを作ってみたよ PDF
Rubyで操るAWS 第67回Ruby関西 勉強会 PDF
Node.jsで始める Modern JavaScript Framework PDF
ぼくのかんがえたさいきょうの Rails スタートダッシュ PPT
PDF
PPTX
PDF
PPTX
Node.jsに縁のない職場でnode.jsを使い始める戦術 PDF
PDF
Node.jsでサーバプログラマ デビューしよう PDF
PPTX
Viewers also liked
PDF
AWS Lambdaで作るクローラー/スクレイピング PPTX
PDF
PDF
ScrapyとPhantomJSを用いたスクレイピングDSL PPTX
CasperJSを使って任意のWebサイトを電子書籍化する方法 PPTX
Node.js×mongo dbで3年間サービス運用してみた話 PPTX
クローラを作る技術と設計 (毎週のハンズオン勉強会資料) PDF
Elasticsearchと機械学習を実際に連携させる Similar to Rubyで作るクローラー Ruby crawler
PPTX
Ruby on Rails を用いたWEBアプリケーションの開発 PDF
PDF
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book PDF
PDF
PDF
ODP
PDF
What's Cooking In Ruby 2.7 PDF
Ruby and I at 神奈川Ruby会議01 PDF
PDF
Shinjuku.rb #61 RubyKaigi2018予習 PDF
PPT
Ruby on Rails Tutorial Chapter5-7 ODP
kpfx07 LT ruby-processingでイケメンになりたい PPT
PPTX
PDF
PDF
PDF
PPTX
Ruby – The Scripting Language More from Takuro Sasaki
PDF
PDF
Swaggerで始めるモデルファーストなAPI開発 PDF
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス PDF
JAWSUG Osaka S3 CloudSearch PDF
第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES) PDF
JAWSUG Kansai Simple Workflow Service (SWF) PDF
PDF
PDF
PDF
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用 PDF
JAWS-UG三都物語2014 初心者向け Elasticity ELB/AutoScaling/EIP PDF
PDF
第8回JAWSUG大阪 AWSの事例/課金について PDF
Jawsug osaka10 service®ions PDF
PDF
第9回Jawsug大阪 ServiceProviders 現場で使えるAWS付随サービス!! PDF
開発環境としてのAwsを真面目に考える jawsug2013三都物語公開用 PDF
Recently uploaded
PDF
PDF
Reiwa 7 IT Strategist Afternoon I Question-1 Ansoff's Growth Vector PDF
さくらインターネットの今 法林リージョン:さくらのAIとか GPUとかイベントとか 〜2026年もバク進します!〜 PDF
100年後の知財業界-生成AIスライドアドリブプレゼン イーパテントYouTube配信 PPTX
PDF
【Deep Learning研修】 音声認識・音声合成技術とその応用 -基礎から最新動向まで- PDF
あなたのスマホの次なるスーパーパワー:「圏外」の終わり、Starlink Direct-to-Cellがもたらす未来 PDF
2025→2026宙畑ゆく年くる年レポート_100社を超える企業アンケート総まとめ!!_企業まとめ_1229_3版 Rubyで作るクローラー Ruby crawler
- 1.
- 2.
- 3.
- 4.
- 5.
✦ プロフィール
‣Webシステムを得意とするSIerで勤務
‣ 最近の仕事はAWS事業の推進・インフラチームのマネジメント
‣ Webスクレイピングして、データマイニングするのが趣味
★ ソーシャル・ネットワーク
‣ blog: http://blog.takuros.net/
‣ twitter: @dkfj
‣ Facebook: takuro.sasaki
‣ SlideShare: http://www.slideshare.net/takurosasaki/
‣ http://www.justyo.co/TAKUROS/
@dkfj
自己紹介: 佐々木拓郎
- 6.
- 7.
私とRuby
✦ 正直、初中級者レベル
‣ 2006年くらいから、個人的に使いはじめる
‣ 2009~10年くらいに業務でRuby On Railsなどを導入
‣ 以降、自分のチームではRailsを標準に
(でも、自分では余りソース書かず)
‣ AWSのAPI利用で、もっぱら利用
‣ 2012~13年くらいにChef, Capistrano関係で再勉強
- 8.
- 9.
- 10.
- 11.
- 16.
- 17.
- 18.
- 19.
- 20.
Rubyでクローラー作成
• Open-URI
• Nokogiri
• Anemone
• Capybara+Selenium
• cosmiccrawler
• CocProxy
基本的なライブラリ
クローラー
フレームワーク
補助的なライブラリ
- 21.
- 22.
• HTML/XMLの構文解析器(パーサー)
•ほぼデファクトスタンダード
• XPath or CSSセレクタで、HTML中の要素を選択
• UTF-8以外の文字コードを扱う場合は注意
require 'nokogiri'
require 'open-uri'
!
doc = Nokogiri.HTML(open("http://nokogiri.org/"))
doc.css('a').each do |element|
puts element[:href]
end
参照:Ruby製の構文解析ツール、Nokogiriの使い方 with Xpath
http://blog.takuros.net/entry/2014/04/15/070434
- 23.
• Ruby製のクローラーフレームワーク
•データ収集/解析/保存の全ての機能がある
• 2年ほどメンテナンスされていない
• ScrapyのあるPythonがうらやましい今日この頃
require 'anemone'
!
Anemone.crawl("http://www.hatena.ne.jp/") do |anemone|
anemone.on_every_page do |page|
puts page.url
puts page.doc.xpath("//head/title/text()").first.to_s if page.doc
end
end
Anemone
参照:オープンソースのRubyのWebクローラー"Anemone"を使ってみる
http://blog.takuros.net/entry/20110204/1296781291
- 24.
Capybara+Selenium
• 基本的には、UIテストツール
• ブラウザを使うので、JavaScriptにも対応可能
• スクレイピング部分は、Nokogiriを利用
• CapybaraをラッパーしたMasqueというクローラー
• ブラウザ代わりに、PhantomJSを使うのもあり
参照:JavaScriptにも対応出来るruby製のクローラー、Masqueを試してみる
http://blog.takuros.net/entry/20131223/1387814711
参照:Capybara-DSLのはなし
http://blog.takuros.net/entry/20140322/1395464375
- 25.
cosmicrawler
• 並列処理を得意とするクローラー
• 並列処理の実装は、EventMachine
• EventMachineの面倒くさい処理を隠蔽してくれる
require 'cosmicrawler'
!
Cosmicrawler.http_crawl(%w(http://b.hatena.ne.jp/hotentry/it http://
b.hatena.ne.jp/hotentry/life)) {|request|
get = request.get
response = get.response if get.response_header.status == 200
doc = Nokogiri::HTML(response)
doc.xpath("//a").each do |element|
参照:複数並行可能なRubyのクローラー、「cosmicrawler」を試してみた
http://blog.takuros.net/entry/20140103/1388701372
puts element[:href]
end
!
}
- 26.
CocProxy
• ほぼピュアRubyで実装されたプロキシサーバ
• 開発用途で、クローラー作成時に便利
• 訪問済みのサイトをキャッシュしてくれる
• 訪問先サイトに無駄に負荷を掛けずに試行錯誤できる
参照:開発用プロキシ、「CocProxy」が便利
http://blog.takuros.net/entry/2014/05/05/120747
- 27.
- 28.
- 29.
- 30.
- 31.
Google Maps APIの活用
• 1IP辺り1日2,500回のリクエスト制限
• 郵便番号(12万件)を、経度緯度に変換したい
• 120,000件/2,500回 ⇒ 48日
• AWSを利用して50台のサーバを使い1時間で完了
!
AWSでスポットインスタンスの活用
$0.0031×50台≒約16円
- 33.
Twitter Streaming API
• 全Tweetのうち、数%だけに絞って提供されている
• それでも1日100万件近い分量
• 日本語のみ取り出すことも可能
!
参照:Rubyのtwitterライブラリで、Twitter Streaming APIが扱えるようになっていた
http://blog.takuros.net/entry/2014/05/19/002326
- 36.
引越にも
• 6月中旬に、突然の異動の辞令
• 7月から東京勤務
• 相場観がないので、賃貸サイトをスクレイピング
• 数十万件のデータから、駅ごとの㎡辺り単価の算出
!
GeoFUSEで視覚化しようとしたが
時間がなくて断念
- 37.