SlideShare uma empresa Scribd logo
1 de 21
スクレイピングは
避けられない!!
@Daikids2
vsLT with Cookpad
自己紹介
所属 : 京都大学工学部情報学科
情報システム分野
来年から :
京都大学大学院情報学研究科
システム科学専攻
応用情報学講座(スパコン)
自己紹介
好きな言語 :
Python
Ruby (on Rails)
Node.js
Kotlin
Lisp(最近やり直してる…)
C++ (BoostいいよBoost)
NodeFes2017
ところで…
こんなことは
ありませんか?
Web APIがないわ!!
それに欲しい情報が
JSONとかでGET
できない!!
機械学習の勉強
したいけど
データがない!!
こんなことは
ありませんか?
そうだ
スクレイピングを
しよう!!
スクレイピングを
すると…
Web(HTML)から情報を取り出す手法
API, CSVデータが落ちてない時に有
効!!
どちらの本も
Amazonに
あります!!
スクレイピングの
例
どこかのトップページから,
関連記事のURLを取得する
ページ内の画像を全て保存
テーブルからデータを取得
なぜできるの?
あくまで, HTMLのタグの情報をとってる
だけ!!
文章を解析してくれるわけではない
このようなものだと, srcタグからurlが取
れる!!
<src url = ”photo.png”/>
道具の話
ライブラリは多数あり!!
Python : Beautiful Soup,
Scrapy(これがすごい!!)
Ruby : Nokogiri…
Node : cheerio-httpcli, osmosis
Java, Kotlin : Jsoup
実際にやってみた
やったこと1
LINE BOTの作成
(NodeFesのハンズオン)
Nodeの最新版 and 安定版,
Yahooの記事一覧を表示
使用ライブラリ:
Node.js : v8.9.1
Library : {
"express": "4.16.2",
"osmosis": "1.1.4”
}
やったこと1
やったこと2
 CONNPASSのapiを使ったAndroidアプリ
 勉強会のurlからhtmlをGET
 Htmlを解析に回して画像を表示
具体的には
 10件の勉強会情報をGET
 それぞれに対して
 帰ってきたapiにある, urlを取得
 urlを叩いてhtmlをget
 Htmlから画像のurlを取得
 Picassoを使って画像urlから画像を表示
API URL HTML src tag
こんな感じに
なりました!!
問題点
重い!!
実際には20秒!!
10件のHttpアクセス
Htmlの解析を10回
ちなみに…
Httpアクセスを0にすると
数秒で完了します…
スクレイピングは案外重い!! サーバーにやらせましょう…
スクレイピングの
問題点
 サイトのポリシーに気をつけよう!!
 APIのあるものはそれを使うべき!!
 自重しよう!!
 簡単にサーバーに負荷をかけられま
す!!
 Scrapyだと, 負荷が軽減できます!!
 機械学習のデータについて
 日本の法律上, 学習用のデータなら
OK!!
Fair Play
Fair Scraping
ルールとマナーを守って
楽しくスクレイピングしよう!!

Mais conteúdo relacionado

Mais procurados

CouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall TokyoCouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall TokyoYohei Sasaki
 
JavaScriptによる記号プログラミング
JavaScriptによる記号プログラミングJavaScriptによる記号プログラミング
JavaScriptによる記号プログラミングsters
 
InnoDBだってシュッと全文検索したい!
InnoDBだってシュッと全文検索したい!InnoDBだってシュッと全文検索したい!
InnoDBだってシュッと全文検索したい!Rikito Taniguchi
 
OSS-DB 取得のススメ
OSS-DB 取得のススメOSS-DB 取得のススメ
OSS-DB 取得のススメ豊明 尾古
 
Go + WS (仮) psoをws使ってやってみる- @spdy+ws勉強会
Go + WS (仮)  psoをws使ってやってみる- @spdy+ws勉強会Go + WS (仮)  psoをws使ってやってみる- @spdy+ws勉強会
Go + WS (仮) psoをws使ってやってみる- @spdy+ws勉強会Takuya Ueda
 
JSONB型でpostgresをNoSQLっぽく使う
JSONB型でpostgresをNoSQLっぽく使うJSONB型でpostgresをNoSQLっぽく使う
JSONB型でpostgresをNoSQLっぽく使うYuki Takeichi
 

Mais procurados (6)

CouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall TokyoCouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
 
JavaScriptによる記号プログラミング
JavaScriptによる記号プログラミングJavaScriptによる記号プログラミング
JavaScriptによる記号プログラミング
 
InnoDBだってシュッと全文検索したい!
InnoDBだってシュッと全文検索したい!InnoDBだってシュッと全文検索したい!
InnoDBだってシュッと全文検索したい!
 
OSS-DB 取得のススメ
OSS-DB 取得のススメOSS-DB 取得のススメ
OSS-DB 取得のススメ
 
Go + WS (仮) psoをws使ってやってみる- @spdy+ws勉強会
Go + WS (仮)  psoをws使ってやってみる- @spdy+ws勉強会Go + WS (仮)  psoをws使ってやってみる- @spdy+ws勉強会
Go + WS (仮) psoをws使ってやってみる- @spdy+ws勉強会
 
JSONB型でpostgresをNoSQLっぽく使う
JSONB型でpostgresをNoSQLっぽく使うJSONB型でpostgresをNoSQLっぽく使う
JSONB型でpostgresをNoSQLっぽく使う
 

Semelhante a スクレイピングは避けられない

オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来増田 亨
 
コロナ禍の所蔵品検索システム
コロナ禍の所蔵品検索システムコロナ禍の所蔵品検索システム
コロナ禍の所蔵品検索システムNaosuke Okamoto
 
20190202 powerbi scraping
20190202 powerbi scraping20190202 powerbi scraping
20190202 powerbi scraping良一 駒板
 
bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩Satoshi Yamada
 
ML system design_pattern
ML system design_patternML system design_pattern
ML system design_patternyusuke shibui
 
Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Kouji Kozaki
 
DBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキルDBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキルSatoshi Yamada
 
ナレッジグラフ入門
ナレッジグラフ入門ナレッジグラフ入門
ナレッジグラフ入門KnowledgeGraph
 
俺と Amazon Elasticsearch Service とスポットインスタンス
俺と Amazon Elasticsearch Service とスポットインスタンス俺と Amazon Elasticsearch Service とスポットインスタンス
俺と Amazon Elasticsearch Service とスポットインスタンスMasayuki KaToH
 
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版Tomoki Hasegawa
 
BLEラジコン基板でIoTしてみた
BLEラジコン基板でIoTしてみたBLEラジコン基板でIoTしてみた
BLEラジコン基板でIoTしてみたBizan Nishimura
 
Foss4g Hokkaido 2019
Foss4g Hokkaido 2019Foss4g Hokkaido 2019
Foss4g Hokkaido 2019Takahiro Endo
 
位置データもPythonで!!!
位置データもPythonで!!!位置データもPythonで!!!
位置データもPythonで!!!hide ogawa
 
基礎演習V 河野ゼミ紹介20161025
基礎演習V 河野ゼミ紹介20161025基礎演習V 河野ゼミ紹介20161025
基礎演習V 河野ゼミ紹介20161025義広 河野
 
利益はデータベースの中にあった!
利益はデータベースの中にあった!利益はデータベースの中にあった!
利益はデータベースの中にあった!infinite_loop
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414Kentaro Ebisawa
 
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Tokoroten Nakayama
 
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Drecom Co., Ltd.
 
160608 01
160608 01160608 01
160608 01openrtm
 

Semelhante a スクレイピングは避けられない (20)

オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来オブジェクト指向プログラミングの現在・過去・未来
オブジェクト指向プログラミングの現在・過去・未来
 
S09 t4 wrapup
S09 t4 wrapupS09 t4 wrapup
S09 t4 wrapup
 
コロナ禍の所蔵品検索システム
コロナ禍の所蔵品検索システムコロナ禍の所蔵品検索システム
コロナ禍の所蔵品検索システム
 
20190202 powerbi scraping
20190202 powerbi scraping20190202 powerbi scraping
20190202 powerbi scraping
 
bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩
 
ML system design_pattern
ML system design_patternML system design_pattern
ML system design_pattern
 
Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方Linked Open Data(LOD)の基本的な使い方
Linked Open Data(LOD)の基本的な使い方
 
DBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキルDBエンジニアに必要だったPythonのスキル
DBエンジニアに必要だったPythonのスキル
 
ナレッジグラフ入門
ナレッジグラフ入門ナレッジグラフ入門
ナレッジグラフ入門
 
俺と Amazon Elasticsearch Service とスポットインスタンス
俺と Amazon Elasticsearch Service とスポットインスタンス俺と Amazon Elasticsearch Service とスポットインスタンス
俺と Amazon Elasticsearch Service とスポットインスタンス
 
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
オプショナル型。〜なんとなく付ける ! ? 撲滅〜 改訂版
 
BLEラジコン基板でIoTしてみた
BLEラジコン基板でIoTしてみたBLEラジコン基板でIoTしてみた
BLEラジコン基板でIoTしてみた
 
Foss4g Hokkaido 2019
Foss4g Hokkaido 2019Foss4g Hokkaido 2019
Foss4g Hokkaido 2019
 
位置データもPythonで!!!
位置データもPythonで!!!位置データもPythonで!!!
位置データもPythonで!!!
 
基礎演習V 河野ゼミ紹介20161025
基礎演習V 河野ゼミ紹介20161025基礎演習V 河野ゼミ紹介20161025
基礎演習V 河野ゼミ紹介20161025
 
利益はデータベースの中にあった!
利益はデータベースの中にあった!利益はデータベースの中にあった!
利益はデータベースの中にあった!
 
ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414ネットワークOS野郎 ~ インフラ野郎Night 20160414
ネットワークOS野郎 ~ インフラ野郎Night 20160414
 
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
 
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
 
160608 01
160608 01160608 01
160608 01
 

スクレイピングは避けられない