狠狠撸

狠狠撸Share a Scribd company logo
ふるかわだいすけ/mogya.com
飲食店サイトの
スクレイピング
自己紹介
ふるかわだいすけ(もぎゃ)
フリーランスWEBエンジニア
http://mogya.com/
Twitter: @mogya
モバイラーズオアシス
http://oasis.mogya.com/
モバイラーズオアシス
http://oasis.mogya.com/
六周年!
今日のテーマ
飲食店サイトの
スクレイピング
目次
? どんなことをしているか
? 情報のパース
? サイトの巡回
? キャッシュについて
? 困ったサイトへの対応
? スケジューラについて
? 法的な側面について
あさーく行きます
? どんなことをしているか
? 情報のパース
? サイトの巡回
? キャッシュについて
? 困ったサイトへの対応
? スケジューラについて
? 法的な側面について
目次
? どんなことをしているか
? 情報のパース
? サイトの巡回
? キャッシュについて
? 困ったサイトへの対応
? スケジューラについて
? 法的な側面について
モバイラーズオアシスで见られる情报
情报提供フォーム
あたりまえです
こんなめんどくさいものに
入力してくれる人はいない
このくらいが限界
このために必要なもの
スクレイピング
デモ
デモ
目的はたくさん
? 店舗登録のためのスクレイピング
? 新店舗を見つけるためのスクレイピング
? 情報を更新するため
? etc
目次
? どんなことをしているか
? 情報のパース
? サイトの巡回
? キャッシュについて
? 困ったサイトへの対応
? スケジューラについて
? 法的な側面について
こうなっているところから
http://www.mcdonalds.co.jp/shop/map/map.php?strcode=01570
店名を取ってみる
require 'hpricot'
require 'open-uri'
url =
'http://www.mcdonalds…map.php?strcode=01570'
page = Hpricot( open(url).read );nil
page.search(".Shopname h3").inner_text
という話を6年前にした
http://www.slideshare.net/mogya/ss-3836905
時間がないので略
http://amazon.jp/dp/4797380357/mogya-22/ref=nosim/
目次
? どんなことをしているか
? 情報のパース
? サイトの巡回
? キャッシュについて
? 困ったサイトへの対応
? スケジューラについて
? 法的な側面について
id=xxxx方式
http://www.mcdonalds.co.jp/shop/map/map.php?strcode=01578
一覧ページ→詳細ページ
http://www.bagus-99.com/company/shop.html
「次へ」対応
http://www.mapion.co.jp???search=mapAreabtn
ほとんどのサイトで使える
目次
? どんなことをしているか
? サイトの巡回
? 情報のパース
? キャッシュについて
? 困ったサイトへの対応
? スケジューラについて
? 法的な側面について
よくあるスクレイピング
よくあるプログラミング
ページをダウンロード
↓
ページをパース(あ、バグってる)
↓
ページをダウンロード
↓
Twitterを見に行く
(五秒)
(五秒)
よくあるプログラミング
ページをダウンロード
↓
ページをパース
↓
ページをダウンロード
↓
(100ページくらい経過)
↓
ページをパース(あ、失敗した)
↓
1ページ目からもう一回
キャッシュが必要!
こういうものがほしい
つくった
https://gist.github.com/mogya/ec02020b8af8cbeec750
?wgetを呼び出してページ取得
?wgetがキャッシュを作成
?wgetのキャッシュファイルを返す
目次
? どんなことをしているか
? 情報のパース
? サイトの巡回
? キャッシュについて
? 困ったサイトへの対応
? スケジューラについて
? 法的な側面について
昔あった事例
昔あった事例
昔あった事例
page =
Hpricot(
open(url).read.gsub(
"</script>n<body>","</script>n“
)
);nil
問題:xpathで読めなくなってしまう
対策:読み込んだタイミングで直してしまう
目次
? どんなことをしているか
? 情報のパース
? サイトの巡回
? キャッシュについて
? 困ったサイトへの対応
? スケジューラについて
? 法的な側面について
3年位前の状況
? 件数が増えると、いつなにをやってい
るのかわからなくなってくる
? 失敗したタスクはどれ?ログはどこ?
jenkins
今後の課題
? 重い
? スクレイピングよりスケジューラのほうが重い
? 低価格サーバには厳しい><
? もっとクレバーにやってほしい
? 何時にやるかは重要でない
? 1つタスクが終わったら次を実行
? 優先度別にタスクを実施
? 月に一回してほしいタスク
? ヒマな時でよいタスク
目次
? どんなことをしているか
? サイトの巡回
? 情報のパース
? キャッシュについて
? 困ったサイトへの対応
? スケジューラについて
? 法的な側面について
よくある话题
モバイラーズオアシスの対策
? 昼間:5秒に1ページ
? 夜間:1秒に1ページ
? 同じページは一ヶ月に一回しかア
クセスしない
歴史的経緯
2010年 librahack事件
→ 和解
歴史的経緯
2012年 著作権法改正
→「スクレイピングは犯罪じゃないよ」
別の問題
「人のサイトから集めた情報で
メシ食っていいと思ってんのか」
(メールで頂いたご意見)
→スクレイピングで集めた情報を
公開すると著作権の問題になる?
モバイラーズオアシスの解釈
? 「事実」は著作物じゃない
? 「文章」は著作物かもしれない
? 例)スターバックス茅場町の電話番号が03-xxxx-xxxx
? →単なる事実
? 例)スターバックス茅場町にはお客様用コンセントあり
? →単なる事実
? 例)「茅場町のスタバのカウンタには8個のコンセントが
用意されていました。コーヒー美味しかったです」
? →著作物...?
モバイラーズオアシスの解釈
https://ja.wikipedia.org/wiki/%E8%91%97%E4%BD%9C%E6%A8%A
モバイラーズオアシスの方針
?店名とか営業時間を公式サイトから持ってくることは問題ない
(サイトを落としたりしちゃ駄目)
?ブログとかで「 ? ? で電源使えました」て書いてあった
→電源が使えたという事実に著作権はないので、
ありがたく引用させていただく
?競合の電源情報サイト
→まるごと引っこ抜くと、「データベースは著作物」理論に引っ
かかるかもしれない。
→個別のお店の情報ソースとして見るぶんには問題ない(だろう)
モバイラーズオアシスの方針
? ぼくは法律の専門家じゃないし、しょぼい会社なので顧問弁護
士とか付けてません。
? 法的内容についてはぼくが勉強した解釈にすぎないので、 ご
自身の問題については法律関連の専門家にご相談ください。
? 交通ルールを守っても車はつっこんでくるのと同様、法律がい
いと言っても訴えられる可能性は常にありえます
ありがとうございました
おわり
ありがとうございました
? どんなことをしているか
? サイトの巡回
? 情報のパース
? キャッシュについて
? 困ったサイトへの対応
? スケジューラについて
? 法的な側面について

More Related Content

Viewers also liked (20)

PPTX
【cybozu conference 2015】nomizu 分科会
Katsuya Nomizu
?
PDF
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
Hiroyuki Yamaoka
?
PDF
スキニーなシステム开発にぴったりの契约形态
Eiwa System Management, Inc.
?
PDF
大公司贬补肠办蝉!
Ryosuke Otsuya
?
PDF
础奥厂アカウント开设からインスタンスを立ち上け?るまて?の作业自动化について
知教 本間
?
PDF
地方で集うビジネスにしない滨罢ラボ
Takeshi Yanagiya
?
PDF
ホラクラシー型组织词実际に8年経営してわかったこと词(ホラクラシーのメカニズム)
Kozo Takei
?
PDF
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
Fumihiko Kinoshita
?
PDF
デザイナーでも构筑できる多言语/マルチデバイス対応サイト
Atushi Sugiyama
?
PDF
足を地に着け落ち着いて考える
Ryuji Tamagawa
?
PDF
ロボットのいる生活@别苍笔颈罢
tomomi_pepper
?
PDF
ソフトウェア受託开発の未来
Yoshihito Kuranuki
?
PDF
世界最强のソフトウェアアーキテクト
驰补丑辞辞!デベロッパーネットワーク
?
PDF
納品のない受託開発を支える レガシーコードを作らない仕組み
Masahiro Nishimi
?
PDF
【基调讲演】変える覚悟、変わる覚悟。
Cybozucommunity
?
PDF
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
Masaru Gushiken
?
PDF
探索的テスト入门
H Iseri
?
PDF
サーヒ?スをつくりなおす决断をするとき
Masaki Yamamoto
?
PDF
エンタープライズパッケージを利用しました?HTML Exporter編?
Yuzuru Sano
?
PDF
クラウド时代だからこそ见直したい?笔贬笔アプリケーションのパフォーマンスチューニング
Terui Masashi
?
【cybozu conference 2015】nomizu 分科会
Katsuya Nomizu
?
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
Hiroyuki Yamaoka
?
スキニーなシステム开発にぴったりの契约形态
Eiwa System Management, Inc.
?
大公司贬补肠办蝉!
Ryosuke Otsuya
?
础奥厂アカウント开设からインスタンスを立ち上け?るまて?の作业自动化について
知教 本間
?
地方で集うビジネスにしない滨罢ラボ
Takeshi Yanagiya
?
ホラクラシー型组织词実际に8年経営してわかったこと词(ホラクラシーのメカニズム)
Kozo Takei
?
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
Fumihiko Kinoshita
?
デザイナーでも构筑できる多言语/マルチデバイス対応サイト
Atushi Sugiyama
?
足を地に着け落ち着いて考える
Ryuji Tamagawa
?
ロボットのいる生活@别苍笔颈罢
tomomi_pepper
?
ソフトウェア受託开発の未来
Yoshihito Kuranuki
?
世界最强のソフトウェアアーキテクト
驰补丑辞辞!デベロッパーネットワーク
?
納品のない受託開発を支える レガシーコードを作らない仕組み
Masahiro Nishimi
?
【基调讲演】変える覚悟、変わる覚悟。
Cybozucommunity
?
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
Masaru Gushiken
?
探索的テスト入门
H Iseri
?
サーヒ?スをつくりなおす决断をするとき
Masaki Yamamoto
?
エンタープライズパッケージを利用しました?HTML Exporter編?
Yuzuru Sano
?
クラウド时代だからこそ见直したい?笔贬笔アプリケーションのパフォーマンスチューニング
Terui Masashi
?

More from だいすけ ふるかわ (19)

PDF
スタートアッフ?ツールチラ見せナイト エニタイムス?
だいすけ ふるかわ
?
KEY
贵颈谤别贵辞虫による奥别产デザイン
だいすけ ふるかわ
?
KEY
Ti.developers.meeting
だいすけ ふるかわ
?
PDF
Titanium mobile
だいすけ ふるかわ
?
PDF
LibraHack後の スクレイピングを 考える
だいすけ ふるかわ
?
PDF
贬迟尘濒5で作る颈笔丑辞苍别アプリケーション2010
だいすけ ふるかわ
?
PDF
贬罢惭尝5で作る颈笔丑辞苍别アプリケーション
だいすけ ふるかわ
?
PDF
Webteko#10 GoogleMaps
だいすけ ふるかわ
?
PDF
すまべん20091114
だいすけ ふるかわ
?
PDF
Webteko 20090925
だいすけ ふるかわ
?
PDF
プログラマがデザインをがんばってみた
だいすけ ふるかわ
?
PDF
Amazon S3 Ec2
だいすけ ふるかわ
?
PDF
Java Script入門
だいすけ ふるかわ
?
PPT
メールフォームを作る
だいすけ ふるかわ
?
PPT
メイドめーる
だいすけ ふるかわ
?
PDF
メイドめーる
だいすけ ふるかわ
?
PPT
ememo_plesentation_2008-02-26
だいすけ ふるかわ
?
PPT
Human Date20070907
だいすけ ふるかわ
?
スタートアッフ?ツールチラ見せナイト エニタイムス?
だいすけ ふるかわ
?
贵颈谤别贵辞虫による奥别产デザイン
だいすけ ふるかわ
?
Ti.developers.meeting
だいすけ ふるかわ
?
LibraHack後の スクレイピングを 考える
だいすけ ふるかわ
?
贬迟尘濒5で作る颈笔丑辞苍别アプリケーション2010
だいすけ ふるかわ
?
贬罢惭尝5で作る颈笔丑辞苍别アプリケーション
だいすけ ふるかわ
?
Webteko#10 GoogleMaps
だいすけ ふるかわ
?
すまべん20091114
だいすけ ふるかわ
?
Webteko 20090925
だいすけ ふるかわ
?
プログラマがデザインをがんばってみた
だいすけ ふるかわ
?
Java Script入門
だいすけ ふるかわ
?
メールフォームを作る
だいすけ ふるかわ
?
メイドめーる
だいすけ ふるかわ
?
メイドめーる
だいすけ ふるかわ
?
ememo_plesentation_2008-02-26
だいすけ ふるかわ
?
Human Date20070907
だいすけ ふるかわ
?
Ad

Recently uploaded (6)

PPTX
[Liberaware] Engineer Summer Internship.pptx
koyamakohei
?
PDF
AWS BedrockによるIoT実装例紹介とAI進化の展望@AWS Summit ExecLeaders Scale Session
Osaka University
?
PDF
音学シンポジウム2025 招待讲演 远隔会话音声认识のための音声强调フロントエント?:概要と我々の取り组み
Tsubasa Ochiai
?
PDF
【础滨罢搁滨翱厂】人惫蝉生成础滨でジェスチャーゲームを础滨罢滨搁翱厂を使ってしてみた
ueda0116
?
PDF
フィシ?カル础滨时代のセキュリティ:ロホ?ティクスと础滨セキュリティの融合のあり方
Osaka University
?
PDF
React Native vs React Lynx (React Native Meetup #22)
Taiju Muto
?
[Liberaware] Engineer Summer Internship.pptx
koyamakohei
?
AWS BedrockによるIoT実装例紹介とAI進化の展望@AWS Summit ExecLeaders Scale Session
Osaka University
?
音学シンポジウム2025 招待讲演 远隔会话音声认识のための音声强调フロントエント?:概要と我々の取り组み
Tsubasa Ochiai
?
【础滨罢搁滨翱厂】人惫蝉生成础滨でジェスチャーゲームを础滨罢滨搁翱厂を使ってしてみた
ueda0116
?
フィシ?カル础滨时代のセキュリティ:ロホ?ティクスと础滨セキュリティの融合のあり方
Osaka University
?
React Native vs React Lynx (React Native Meetup #22)
Taiju Muto
?
Ad

饮食店サイトのスクレイピング