SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Lib H k後のLibraHack後の
スクレイピングを
考える考える
ふるかわだいすけ/mogya.com
ふるかわだいすけふるかわだ すけ
ジフリーランスWEBエンジニア
http://mogya com/http://mogya.com/
Twitter: @mogya
自己紹介
http://oasis.mogya.com/
モバイラーズオアシス
スクレイピングしまくり
LibraHack
岡崎市立中央図書館事件
今日のテーマ
どんな事件だったかどんな事件だったか
わかりやすく説明してみるわかりやすく説明してみる
デスノートを例にして
※権利関係が微妙なので※権利関係が微妙なので
画像は削除
デスノートを拾ったので
デスノートプリンタを作ったら
※権利関係が微妙なので※権利関係が微妙なので
画像は削除
死神に怒られた
岡崎市立中央図書館事件
2010年3月頃、市民から同図書館のウェブサイトの
蔵書検索システムに対し、接続が出来ないと苦情が
岡崎市立中央図書館事件
あり、その後もウェブサイトの閲覧が困難になる事
態が相次いだ。同年4月15日に同図書館が迷惑なア
クセスを受けていると愛知県警岡崎署に被害届を提クセスを受けていると愛知県警岡崎署に被害届を提
出し、5月25日にアクセスを行っていた男性が蔵書
検索システムに 高頻度のリクエストを故意に送り検索システムに、高頻度のリクエストを故意に送り
つけたとして偽計業務妨害容疑で逮捕された。
Wikipediaによる説明
スクレイピングが悪い!とはならなかった
まずは一安心
万 サ バを落として逮捕された時に万一サーバを落として逮捕された時に
「あの岡崎図書館でも落ちないように作って
あ た と えば 当性を主張 き んじ なあった」といえば正当性を主張できるんじゃな
いか?
保守的な教訓
• 1アクセス / 10分• 1アクセス / 10分
• クッキー対応
取得したデ タをキ シ する• 取得したデータをキャッシュする
• userAgentで連絡先を明示するg
• robot.txtに従う
• if-modified-sinceif modified since
望ましい機能
つくってみた
#{WGET} N P "#{CACHE DIR}"#{WGET} -x -N -P "#{CACHE_DIR}" --user-
agent="#{userAgent}" "#{uri}"
• -x ディレクトリを作る
• -N タイムスタンプ(If-Modified-Since)
デ• -P キャッシュのディレクトリを指定
• --load-cookies "#{COOKIE_FILE}"
• save cookies "#{COOKIE FILE}• --save-cookies #{COOKIE_FILE}
• --keep-session-cookies
wgetにおまかせ
• キャッシュファイルの場所キャッシュファイルの場所
/tmp/WgetScraper/oasis.mogya.com/test.txt?a=b&c=d
↓↓
filename = "#{uri_obj.host}#{uri_obj.path}“
filename = filename+"?"+ uri obj queryfilename = filename+ ? + uri_obj.query
なにげに苦労したところ
期待:/tmp/WgetScraper/gis.e-
map.ne.jp/standard/13125010/ssactl.htm?GO.x=13&GO.y=2&X shopp jp/ / / y _ p
_id=40000&X_cancel_url=http%3A%2F%2Fwww.sej.co.jp%2F
結果:/tmp/WgetScraper/gis.e-/ p/ g p /g
map.ne.jp/standard/13125010/ssactl.htm?GO.x=13&GO.y=2&X_shop
_id=40000&X_cancel_url=http:%2F%2Fwww.sej.co.jp%2F
↓
filename = filename+"?"+ URI.encode(filename filename ? URI.encode(
URI.decode(uri_obj.query),
/[^-_.!~*'()a-zA-Z¥d;?:@&=+$,¥[¥]]/n)
微妙な違い
あとでブログにあげておきます
http://mogya com/http://mogya.com/
Twitter: @mogya
まとめ

Más contenido relacionado

Más de だいすけ ふるかわ (15)

実践スクレイピング
実践スクレイピング実践スクレイピング
実践スクレイピング
 
Html5で作るiPhoneアプリケーション2010
Html5で作るiPhoneアプリケーション2010Html5で作るiPhoneアプリケーション2010
Html5で作るiPhoneアプリケーション2010
 
HTML5で作るiPhoneアプリケーション
HTML5で作るiPhoneアプリケーションHTML5で作るiPhoneアプリケーション
HTML5で作るiPhoneアプリケーション
 
Webteko#10 GoogleMaps
Webteko#10 GoogleMapsWebteko#10 GoogleMaps
Webteko#10 GoogleMaps
 
すまべん20091114
すまべん20091114すまべん20091114
すまべん20091114
 
Webteko 20090925
Webteko 20090925Webteko 20090925
Webteko 20090925
 
プログラマがデザインをがんばってみた
プログラマがデザインをがんばってみたプログラマがデザインをがんばってみた
プログラマがデザインをがんばってみた
 
Amazon S3 Ec2
Amazon S3 Ec2Amazon S3 Ec2
Amazon S3 Ec2
 
Java Script入門
Java Script入門Java Script入門
Java Script入門
 
メールフォームを作る
メールフォームを作るメールフォームを作る
メールフォームを作る
 
メイドめーる
メイドめーるメイドめーる
メイドめーる
 
メイドめーる
メイドめーるメイドめーる
メイドめーる
 
Iepngfix
IepngfixIepngfix
Iepngfix
 
ememo_plesentation_2008-02-26
ememo_plesentation_2008-02-26ememo_plesentation_2008-02-26
ememo_plesentation_2008-02-26
 
Human Date20070907
Human Date20070907Human Date20070907
Human Date20070907
 

Último

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 

Último (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

LibraHack後の スクレイピングを 考える