Lib H k後のLibraHack後の
スクレイピングを
考える考える
ふるかわだいすけ/mogya.com
ふるかわだいすけふるかわだ すけ
ジフリーランスWEBエンジニア
http://mogya com/http://mogya.com/
Twitter: @mogya
自己紹介
http://oasis.mogya.com/
モバイラーズオアシス
スクレイピングしまくり
LibraHack
岡崎市立中央図書館事件
今日のテーマ
どんな事件だったかどんな事件だったか
わかりやすく説明してみるわかりやすく説明してみる
デスノートを例にして
※権利関係が微妙なので※権利関係が微妙なので
画像は削除
デスノートを拾ったので
デスノートプリンタを作ったら
※権利関係が微妙なので※権利関係が微妙なので
画像は削除
死神に怒られた
岡崎市立中央図書館事件
2010年3月頃、市民から同図書館のウェブサイトの
蔵書検索システムに対し、接続が出来ないと苦情が
岡崎市立中央図書館事件
あり、その後もウェブサイトの閲覧が困難になる事
態が相次いだ。同年4月15日に同図書館が迷惑なア...
スクレイピングが悪い!とはならなかった
まずは一安心
万 サ バを落として逮捕された時に万一サーバを落として逮捕された時に
「あの岡崎図書館でも落ちないように作って
あ た と えば 当性を主張 き んじ なあった」といえば正当性を主張できるんじゃな
いか?
保守的な教訓
• 1アクセス / 10分• 1アクセス / 10分
• クッキー対応
取得したデ タをキ シ する• 取得したデータをキャッシュする
• userAgentで連絡先を明示するg
• robot.txtに従う
• if-modified-sin...
つくってみた
#{WGET} N P "#{CACHE DIR}"#{WGET} -x -N -P "#{CACHE_DIR}" --user-
agent="#{userAgent}" "#{uri}"
• -x ディレクトリを作る
• -N タイムスタン...
• キャッシュファイルの場所キャッシュファイルの場所
/tmp/WgetScraper/oasis.mogya.com/test.txt?a=b&c=d
↓↓
filename = "#{uri_obj.host}#{uri_obj.path}...
期待:/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_...
あとでブログにあげておきます
http://mogya com/http://mogya.com/
Twitter: @mogya
まとめ
Upcoming SlideShare
Loading in …5
×

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

2,749 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,749
On SlideShare
0
From Embeds
0
Number of Embeds
1,110
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. Lib H k後のLibraHack後の スクレイピングを 考える考える ふるかわだいすけ/mogya.com
  2. 2. ふるかわだいすけふるかわだ すけ ジフリーランスWEBエンジニア http://mogya com/http://mogya.com/ Twitter: @mogya 自己紹介
  3. 3. http://oasis.mogya.com/ モバイラーズオアシス
  4. 4. スクレイピングしまくり
  5. 5. LibraHack 岡崎市立中央図書館事件 今日のテーマ
  6. 6. どんな事件だったかどんな事件だったか わかりやすく説明してみるわかりやすく説明してみる デスノートを例にして
  7. 7. ※権利関係が微妙なので※権利関係が微妙なので 画像は削除 デスノートを拾ったので
  8. 8. デスノートプリンタを作ったら
  9. 9. ※権利関係が微妙なので※権利関係が微妙なので 画像は削除 死神に怒られた
  10. 10. 岡崎市立中央図書館事件 2010年3月頃、市民から同図書館のウェブサイトの 蔵書検索システムに対し、接続が出来ないと苦情が 岡崎市立中央図書館事件 あり、その後もウェブサイトの閲覧が困難になる事 態が相次いだ。同年4月15日に同図書館が迷惑なア クセスを受けていると愛知県警岡崎署に被害届を提クセスを受けていると愛知県警岡崎署に被害届を提 出し、5月25日にアクセスを行っていた男性が蔵書 検索システムに 高頻度のリクエストを故意に送り検索システムに、高頻度のリクエストを故意に送り つけたとして偽計業務妨害容疑で逮捕された。 Wikipediaによる説明
  11. 11. スクレイピングが悪い!とはならなかった まずは一安心
  12. 12. 万 サ バを落として逮捕された時に万一サーバを落として逮捕された時に 「あの岡崎図書館でも落ちないように作って あ た と えば 当性を主張 き んじ なあった」といえば正当性を主張できるんじゃな いか? 保守的な教訓
  13. 13. • 1アクセス / 10分• 1アクセス / 10分 • クッキー対応 取得したデ タをキ シ する• 取得したデータをキャッシュする • userAgentで連絡先を明示するg • robot.txtに従う • if-modified-sinceif modified since 望ましい機能
  14. 14. つくってみた
  15. 15. #{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におまかせ
  16. 16. • キャッシュファイルの場所キャッシュファイルの場所 /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 なにげに苦労したところ
  17. 17. 期待:/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) 微妙な違い
  18. 18. あとでブログにあげておきます http://mogya com/http://mogya.com/ Twitter: @mogya まとめ

×