長期停滞論から考えるアベノミクスの今後の課題 ( …...長期停滞論から考える アベノミクスの今後の課題 金融危機後の長期停滞を、需要不足、供給力不足、
LibraHack後の スクレイピングを 考える
-
Upload
- -
Category
Technology
-
view
2.458 -
download
9
Transcript of LibraHack後の スクレイピングを 考える
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 /gmap.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
まとめ