Submit Search
Upload
20090704rubyist九州
•
Download as ODP, PDF
•
2 likes
•
1,183 views
koki_h
Follow
Rubyist九州7月定例会発表した初心者向けネタのスライドです。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 24
Download now
Recommended
Haikara
Haikara
jewel12
web server
web server
soestudio
Puppet on AWS
Puppet on AWS
Sugawara Genki
Itcamp長崎2012 capistrano
Itcamp長崎2012 capistrano
kumachang_LL
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Takeshi Komiya
ChefとPuppetの比較
ChefとPuppetの比較
Sugawara Genki
Puppetのススメ
Puppetのススメ
Gosuke Miyashita
Pycon2014 django performance
Pycon2014 django performance
hirokiky
Recommended
Haikara
Haikara
jewel12
web server
web server
soestudio
Puppet on AWS
Puppet on AWS
Sugawara Genki
Itcamp長崎2012 capistrano
Itcamp長崎2012 capistrano
kumachang_LL
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
Takeshi Komiya
ChefとPuppetの比較
ChefとPuppetの比較
Sugawara Genki
Puppetのススメ
Puppetのススメ
Gosuke Miyashita
Pycon2014 django performance
Pycon2014 django performance
hirokiky
らくちん Go言語
らくちん Go言語
株式会社YEBIS.XYZ
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
Naotoshi Seo
明日から使えるコーディングツール
明日から使えるコーディングツール
Tomokazu Kiyohara
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
Taro Hirose
ゆるかわPhp
ゆるかわPhp
Ryota Mochizuki
Mina 20130417
Mina 20130417
Naotoshi Seo
The master plan ofscaling a web application
The master plan ofscaling a web application
Yusuke Wada
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
Kamimura Taichi
Chef+serverspec+werckerでインフラCIする話
Chef+serverspec+werckerでインフラCIする話
Masayuki Morita
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
Chefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについて
Yuuki Namikawa
Ansible入門
Ansible入門
Akira Otsuka
RubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入り
Kouhei Sutou
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
CLARA ONLINE, Inc.
Chef SoloからItamaeに完全移行した話+
Chef SoloからItamaeに完全移行した話+
Tsuyoshi Torii
Ansible入門...?
Ansible入門...?
shirou wakayama
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
Takeshi Komiya
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
Word pressのテーマは firephpでハックすれば 良かったのか
Word pressのテーマは firephpでハックすれば 良かったのか
Hisateru Tanaka
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
Sho A
Welcome pepper~facebookで振り返る片想い?が実るまでの軌跡~
Welcome pepper~facebookで振り返る片想い?が実るまでの軌跡~
守 村山
20160529 Pepper SDK for Android Studio
20160529 Pepper SDK for Android Studio
Kenichi Ohwada
More Related Content
What's hot
らくちん Go言語
らくちん Go言語
株式会社YEBIS.XYZ
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
Naotoshi Seo
明日から使えるコーディングツール
明日から使えるコーディングツール
Tomokazu Kiyohara
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
Taro Hirose
ゆるかわPhp
ゆるかわPhp
Ryota Mochizuki
Mina 20130417
Mina 20130417
Naotoshi Seo
The master plan ofscaling a web application
The master plan ofscaling a web application
Yusuke Wada
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
Kamimura Taichi
Chef+serverspec+werckerでインフラCIする話
Chef+serverspec+werckerでインフラCIする話
Masayuki Morita
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
Chefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについて
Yuuki Namikawa
Ansible入門
Ansible入門
Akira Otsuka
RubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入り
Kouhei Sutou
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
CLARA ONLINE, Inc.
Chef SoloからItamaeに完全移行した話+
Chef SoloからItamaeに完全移行した話+
Tsuyoshi Torii
Ansible入門...?
Ansible入門...?
shirou wakayama
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
Takeshi Komiya
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
Word pressのテーマは firephpでハックすれば 良かったのか
Word pressのテーマは firephpでハックすれば 良かったのか
Hisateru Tanaka
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
Sho A
What's hot
(20)
らくちん Go言語
らくちん Go言語
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
明日から使えるコーディングツール
明日から使えるコーディングツール
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
ゆるかわPhp
ゆるかわPhp
Mina 20130417
Mina 20130417
The master plan ofscaling a web application
The master plan ofscaling a web application
Ansible roleとinventoryの書き方
Ansible roleとinventoryの書き方
Chef+serverspec+werckerでインフラCIする話
Chef+serverspec+werckerでインフラCIする話
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Chefを利用した運用省力化とDevOpsの取り組みについて
Chefを利用した運用省力化とDevOpsの取り組みについて
Ansible入門
Ansible入門
RubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入り
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Chef SoloからItamaeに完全移行した話+
Chef SoloからItamaeに完全移行した話+
Ansible入門...?
Ansible入門...?
明日から始める Chef 入門 #bpstudy
明日から始める Chef 入門 #bpstudy
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Word pressのテーマは firephpでハックすれば 良かったのか
Word pressのテーマは firephpでハックすれば 良かったのか
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
Viewers also liked
Welcome pepper~facebookで振り返る片想い?が実るまでの軌跡~
Welcome pepper~facebookで振り返る片想い?が実るまでの軌跡~
守 村山
20160529 Pepper SDK for Android Studio
20160529 Pepper SDK for Android Studio
Kenichi Ohwada
Pepper x IoT x Web 勉強会やってみた話と失敗談
Pepper x IoT x Web 勉強会やってみた話と失敗談
dsuke Takaoka
Pepper DAYS ☆ -Pepperのいる世界-
Pepper DAYS ☆ -Pepperのいる世界-
tomomi_pepper
NAO Workshop #1
NAO Workshop #1
Takuji Kawata
ニンニンPepperアプリ概要と技術説明
ニンニンPepperアプリ概要と技術説明
chong song
Pepperって実際何モノ?
Pepperって実際何モノ?
tomomi_pepper
Wo! vol.38 ロボットの「iPhone」になるか?Pepperの概要
Wo! vol.38 ロボットの「iPhone」になるか?Pepperの概要
thinkjam.Inc.
IBM Blluemix を Pepper とつないでみよう
IBM Blluemix を Pepper とつないでみよう
Takuji Kawata
Pepper アプリデベロッパーのための NAO アプリ開発講座1
Pepper アプリデベロッパーのための NAO アプリ開発講座1
Takuji Kawata
Pepper活用提案書
Pepper活用提案書
优辅 西
Viewers also liked
(11)
Welcome pepper~facebookで振り返る片想い?が実るまでの軌跡~
Welcome pepper~facebookで振り返る片想い?が実るまでの軌跡~
20160529 Pepper SDK for Android Studio
20160529 Pepper SDK for Android Studio
Pepper x IoT x Web 勉強会やってみた話と失敗談
Pepper x IoT x Web 勉強会やってみた話と失敗談
Pepper DAYS ☆ -Pepperのいる世界-
Pepper DAYS ☆ -Pepperのいる世界-
NAO Workshop #1
NAO Workshop #1
ニンニンPepperアプリ概要と技術説明
ニンニンPepperアプリ概要と技術説明
Pepperって実際何モノ?
Pepperって実際何モノ?
Wo! vol.38 ロボットの「iPhone」になるか?Pepperの概要
Wo! vol.38 ロボットの「iPhone」になるか?Pepperの概要
IBM Blluemix を Pepper とつないでみよう
IBM Blluemix を Pepper とつないでみよう
Pepper アプリデベロッパーのための NAO アプリ開発講座1
Pepper アプリデベロッパーのための NAO アプリ開発講座1
Pepper活用提案書
Pepper活用提案書
Similar to 20090704rubyist九州
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
Takeshi Arabiki
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
UnicastWS vol.2
UnicastWS vol.2
Unicast Inc.
Pythonで検索エンジン2
Pythonで検索エンジン2
Yasukazu Kawasaki
How to run P4 BMv2
How to run P4 BMv2
Kentaro Ebisawa
いまさら聞けないRake入門
いまさら聞けないRake入門
Tomoya Kawanishi
FukuokaPHP 3
FukuokaPHP 3
ichikaway
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ai Makabi
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4
Taku Unno
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
WCO2012「PHP教室」
WCO2012「PHP教室」
Takuma Morikawa
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
Yuki Okada
Programming camp Codereading
Programming camp Codereading
Hiro Yoshioka
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
Arduino を PHP で制御する
Arduino を PHP で制御する
Kenichi Ahagon
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例
Naoto Koshikawa
PHPとJavaScriptの噺
PHPとJavaScriptの噺
Shogo Kawahara
OpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かす
KUNITO Atsunori
Similar to 20090704rubyist九州
(20)
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
UnicastWS vol.2
UnicastWS vol.2
Pythonで検索エンジン2
Pythonで検索エンジン2
How to run P4 BMv2
How to run P4 BMv2
いまさら聞けないRake入門
いまさら聞けないRake入門
FukuokaPHP 3
FukuokaPHP 3
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Ansibleを使ってローカル開発環境を作ろう ( #PyLadiesTokyo Meetup )
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
WCO2012「PHP教室」
WCO2012「PHP教室」
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
Programming camp Codereading
Programming camp Codereading
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Arduino を PHP で制御する
Arduino を PHP で制御する
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例
PHPとJavaScriptの噺
PHPとJavaScriptの噺
OpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かす
Recently uploaded
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Recently uploaded
(8)
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
20090704rubyist九州
1.
Rubyを使って まとめサイトをさくっと作ろう (2009年7月Rubyist九州初心者向けコーナー)
橋本 幸樹(koki-h) http://d.hatena.ne.jp/koki-h @20090704 Rubyist九州 定例会
2.
今日のお題 ●
フィジカルコンピューティングモジュール ”Pepper” のまとめサイトを先日作ったので その作業でいかにRubyを利用して楽をしたか、 についてお話します。 ● 上記の話題を通してRuby初心者の方にRubyの便 利な機能やよく使われるライブラリについて情 報をご提供できたらうれしいです。 ● まあいろいろツッコミどころはあると思いま す。
3.
”Pepper”とは ●
フィジカルコンピューティングモジュール (Gainer互換) ● パソコンと電子部品の橋渡しをする機器 ● これがあれば以下のようなプログラムを各種の 言語で作成できます。 – たとえばパソコンの画面をクリックしたらLED点灯 (PCからLEDを制御) – たとえば警告通知メール(「サーバが止まっ た!」)が到着したら回転灯点灯(PCから回転灯を 制御) – たとえば大統領スイッチをおしたらWEBサイトで声 明(大統領スイッチからPCを制御)
4.
大統領スイッチ カバーを..
カパッとして ぐっと押す! 「シリコンハウス共立」 のブログより引用 http://blog.siliconhouse.jp/archives/51572333.html
5.
Pepperのデモ ●
画面をクリックするとLED点灯 ● 今回はProcessingという言語で実装していま す。 ● Rubyを使うことも出来ます。(が、まだ試して いません)
6.
私とPepper ●
Make: Tokyo Meeting 03 でキットを販売して いたのを購入 ● マニュアルなし(「ネットでわかりますよ」) ● そこで検索 ● 雑誌「エレキジャック」のサイトでの作者の方 が書いた入門記事の連載を発見! ● ただ、ちょっと読みにくい。。。(記事自体は とても良い記事です)
7.
エレキジャックの記事の
ここが読みにくい ● 前回、次回へのリンクがない ● 連載のインデックスページがない ● なので、第1回を読んだあと、第2回を読みたく ても時間をかけて探さなければならない。 そうだ。自分でまとめサイトを作ろ う!
8.
サイト内検索は? キーワード“ Pepper”で検索した結 果
9.
サイト内検索は? ●
"Pepper”で検索すると他の記事が上位に来る ● 掲載日順のソートが出来ない 検索結果から必要なリンクを抜き出 し、 並べ替えれば読みやすくなる。 抜き出しや並べ替えは Rubyで自動化できる!(ある程度)
10.
まとめサイト製作の手順 ※赤文字のところをRubyでやります 1.エレキジャックのサイトを検索し、検索結果か らPepperに関する記事のリンクだけを抜き出
し、URL順(大体日付順になる)にソートする 2.日付順になっていないところをエディタで直す 3.抜き出したURLを使って記事ページ取得し、サ ブタイトルの部分を抜き出す 4.サブタイトルが取得できていないところをエディタで 直す 5.URL、ページタイトル、サブタイトルを整形 し、HTML化する 6.整形したHTMLを適当なWEBページに貼り付ける
11.
1.検索→リンク抜き出し→ソート # fetch_link.rb require 'rubygems' require
'mechanize' url = "http://search.cqpub.co.jp/cgi-bin/searchej.cgi?q=pepper&o=" url2= "http://search.cqpub.co.jp/cgi-bin/searchej.cgi?q=pepper&qxpnd=0&pagenum=2" Linktext_contains = /Pepper/ Agent = WWW::Mechanize.new Links = {} def fetch_link(url) #Mechanizeで検索結果ページを取得 page = Agent.get(url) page.links_with(:text => Linktext_contains).each do |l| #Pepper関連の<a>タグのみ Links[l.href] = l.text #URLをキーにリンク文字を格納 end end fetch_link(url) fetch_link(url2) Links.keys.sort.each do |k| #URL順にソートしてタブ区切りで出力 printf "%st%sn", Links[k], k end
12.
1.検索→リンク抜き出し→ソート
(解説) ● WWW::Mechanizeというライブラリを使用してい ます。 ● WWW::Mechanizeはブラウザの代わりにスクリプ トでWEBにアクセスするためのライブラリです ● WWW::Mechanizeは 最近のRubyが入っていて、 ネットにつながっている環境ならコマンドライ ンから “gem install mechanize” とやると入ります ※gemコマンドは”RubyGems”というRuby用のライブラリやRubyで書かれたアプリを 管理するソフトウェアです。Ruby1.9系には標準添付ですが、Ruby1.8系だと別途イ ンストールしなければならない場合があります。(1.8系でもパッケージ作者さんが 添付している場合が多いようです。) 前のスライドに戻ってソースを見直してみましょう
13.
出力結果(イメージ) 記事タイトルに"Pepper”を含むものだけが抜き出されました Ginger/Pepper/Sugarでフィジカル・コンピューティング(1) -
フィジカル・ コンピュー...http://www.eleki-jack.com/FC/2008/11/post.html Ginger/Pepper/Sugarでフィジカル・コンピューティング(2) - フィジカル・ コンピュー...http://www.eleki- jack.com/FC/2008/11/gingerpeppersugar2.html Ginger/Pepper/Sugarでフィジカル・コンピューティング(3) - フィジカル・ コンピュー...http://www.eleki- jack.com/FC/2008/11/gingerpeppersugar3.html Ginger/Pepper/Sugarでフィジカル・コンピューティング(4) - フィジカル・ コンピュー...http://www.eleki- jack.com/FC/2008/11/gingerpeppersugar4.html Ginger/Pepper/Sugarでフィジカル・コンピューティング(5) - フィジカ ル・コンピュー...http://www.eleki- jack.com/FC/2008/11/gingerpeppersugar.html Ginger/Pepper/Sugarでフィジカル・コンピューティング(6) - フィジカル・ コンピュー...http://www.eleki- jack.com/FC/2008/11/gingerpeppersugar6.html ※プログラムの実行結果をエディタで修正したものの一部 Ginger/Pepper/Sugarでフィジカル・コンピューティング(7) - フィジカル・ です。 コンピュー...http://www.eleki-jack.com/FC/2008/11/7.html
14.
3.記事ページ取得して
サブタイトル抜き出し #fetch_subtitle.rb require 'rubygems' require 'csv' require 'open-uri' require 'nokogiri' file = './url_list.txt' #前工程の出力結果(タブ区切りテキスト(TSV)) CSV.open(file,"r","t") do |row| #TSVの読み込み title = row[0] #各カラムが自動的に配列に入ってくれる url = row[1] page = open(url) #ページを取得 doc = Nokogiri::HTML(page) #HTMLをnokigiriで解析 subtitle = doc.css(".asset-body b")[0] #CSSセレクタでサブタイトル抜き出し subtitle = subtitle.text if subtitle printf "%st%st%sn",url, title.sub(/ - .*$/,''), subtitle #サブタイトル付きで出力(TSV) end
15.
3.記事ページ取得して
サブタイトル抜き出し(解説) ● タブ区切りテキストの読み込みにCSVライブラ リを使っています。自動で行区切り、列区切り をやってくれるので便利です。 ● ページ取得はここではMechanizeの代わりに open-uriライブラリを使っています。 ● CSVライブラリとopen-uriライブラリはRubyに 標準添付です。 ● HTMLを解析してサブタイトルを抜き出すのには Nokogiri を使っています。”gem install nokogiri”で入ります。CSSセレクタパターン で抜き出せます。
16.
出力結果(イメージ) 記事のサブタイトルが追加されました http://www.eleki-jack.com/FC/2008/11/post.html Ginger/Pepper/Sugarでフィジカル・ コンピューティング(1)
はじめに http://www.eleki-jack.com/FC/2008/11/gingerpeppersugar2.html Ginger/Pepper/Sugar でフィジカル・コンピューティング(2) 第2回 Pepperを組み立てよう-1 http://www.eleki-jack.com/FC/2008/11/gingerpeppersugar3.html Ginger/Pepper/Sugar でフィジカル・コンピューティング(3) 第2回 Pepperを組み立てよう-2 http://www.eleki-jack.com/FC/2008/11/gingerpeppersugar4.html Ginger/Pepper/Sugar でフィジカル・コンピューティング(4) 第3回 Pepperの動作を確認しよう-1 http://www.eleki-jack.com/FC/2008/11/gingerpeppersugar.html Ginger/Pepper/Sugarで フィジカル・コンピューティング(5) 第3回 Pepperの動作を確認しよう-2 (Processingのインストール編) http://www.eleki-jack.com/FC/2008/11/gingerpeppersugar6.html Ginger/Pepper/Sugar でフィジカル・コンピューティング(6) 第4回 PepperでHello World http://www.eleki-jack.com/FC/2008/11/7.htmlGinger/Pepper/Sugarでフィジカル・コン ピューティング(7) (前回からの続き) ※プログラムの実行結果をエディタで修正したものの一部 です。
17.
5.整形、HTML化 #make_html.rb require 'rubygems' require 'csv' require
'erb' TEMPLATE =<<TEMPLATE #出力結果のテンプレート <p> <a href=<%= url %>><%= title %></a><br /> <span style="font-size:85%"><%= subtitle %></span> </p> TEMPLATE FORMATTER = ERB.new(TEMPLATE) file = './subtitles.txt' #前工程の出力結果(タブ区切りテキスト (TSV)) CSV.open(file,"r","t") do |row| #TSV読み込み url = row[0] title = row[1] subtitle = row[2] puts FORMATTER.result(binding) #erbでフォーマットして出力 end
18.
5.整形、HTML化(解説) ●
TSV読み込みのところは前の工程と一緒です。 ● HTMLに整形する部分はERBを使っています。 ● ERBはRubyに標準添付のテンプレートエンジン です。(Ruby on Railsでも使われていま す。) ● ERBを使うと書式の中にテキストを埋め込むこ とが簡単にできます。
19.
出力結果(部分) これを適当なWEBページに貼り付ければ完成です! <p>
<a href=http://www.eleki-jack.com/FC/2008/11/post.html>Ginger/Pepper/Sugarで フィジカル・コンピューティング(1)</a><br /> <span style="font-size:85%">はじめに</span> </p> <p> <a href=http://www.eleki- jack.com/FC/2008/11/gingerpeppersugar2.html>Ginger/Pepper/Sugarでフィジカル・ コンピューティング(2)</a><br /> <span style="font-size:85%">第2回 Pepperを組み立てよう-1</span> </p> <p> <a href=http://www.eleki- jack.com/FC/2008/11/gingerpeppersugar3.html>Ginger/Pepper/Sugarでフィジカル・ コンピューティング(3)</a><br /> <span style="font-size:85%">第2回 Pepperを組み立てよう-2</span> </p>
20.
まとめ ●
WEBから何かを取得して抜き出すときは WWW::Mechanizeが便利 ● 単純なWEBアクセスにはopen-uriが便利 ● CSVの読み込みにはCSVライブラリが便利 ● HTMLを解析して特定の要素を抜き出すには Nokigiriが便利 ● テンプレート出力にはERBが便利 ● 似たような機能を持つライブラリは他にもあり ます。慣れてきたらもっと自分好みのものを探 してみるのもいいかと思います。
21.
リンク ●
WWW::Mechanize – http://d.hatena.ne.jp/kitamomonga/20081209/kai setsu_for_ver_0_9_ruby_www_mechanize ● open-uri – http://www.ruby- lang.org/ja/man/html/open_uri.html ● CSV – http://www.ruby-lang.org/ja/man/html/CSV.html ● Nokogiri – http://mono.kmc.gr.jp/~yhara/rubyscraping/? Nokogiri
22.
リンク(2) ●
ERB – http://www.ruby-lang.org/ja/man/html/erb.html ● RubyGems – http://www.ruby- lang.org/ja/man/html/RubyGems.html ● Pepperまとめサイト – http://pepper.gohannnotomo.org ● 雑誌「エレキジャック」 – http://www.eleki-jack.com/
23.
質疑応答
24.
ご清聴ありがとうございました
Download now