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