Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
turugina
4,329 views
Yapcasia2012 ltthon
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 13
2
/ 13
3
/ 13
4
/ 13
5
/ 13
6
/ 13
7
/ 13
8
/ 13
9
/ 13
10
/ 13
11
/ 13
12
/ 13
13
/ 13
More Related Content
PDF
第8回KPF発表資料
by
cryks
PPTX
ParliamentでGeoSPARQL
by
Teppei Inaba
KEY
カジュアルにバックアップ - MySQL Casual Talks 福岡
by
Aya Komuro
PDF
Bgworkerで簡易クラスタ管理
by
Masahiko Sawada
PDF
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
by
Nobuto Murata
PDF
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
by
Nobuto Murata
PDF
R以外の研究ツール
by
弘毅 露崎
PPTX
パケット解析ノススメ
by
彰 村地
第8回KPF発表資料
by
cryks
ParliamentでGeoSPARQL
by
Teppei Inaba
カジュアルにバックアップ - MySQL Casual Talks 福岡
by
Aya Komuro
Bgworkerで簡易クラスタ管理
by
Masahiko Sawada
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
by
Nobuto Murata
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
by
Nobuto Murata
R以外の研究ツール
by
弘毅 露崎
パケット解析ノススメ
by
彰 村地
What's hot
PDF
RとSQLiteで気軽にデータベース作成
by
弘毅 露崎
KEY
Mysql casial01
by
matsuo kenji
PDF
Openresty
by
ogawatti
PDF
10分で分かるLinuxブロックレイヤ
by
Takashi Hoshino
PDF
OCaml でデータ分析
by
Akinori Abe
PDF
My misstake on Ansible’s lineinfile module
by
Yukiya Hayashi
PDF
PHP matsuri 2013 Windows Azure Storage SDK for PHP
by
Takeshi Sakurai
PDF
エコなWebサーバー
by
emasaka
PDF
Nuxt.js + microCMS + netlify
by
ogawatti
ODP
ファイルサーバ構築
by
Takashi Noboru
PDF
分散データベース gun について調べた
by
keisunagawa
PDF
CouchDB JP & BigCouch
by
Yohei Sasaki
PDF
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
by
maebashi
PPTX
C++のビルド高速化について
by
AimingStudy
PPTX
フレッシャーズのためのパケット解析入門
by
彰 村地
PDF
10分で分かるデータストレージ
by
Takashi Hoshino
PDF
Sphinx/reST
by
Ryo Maruyama
KEY
データベースのお話
by
Hidekazu Tanaka
PDF
Webサーバ構築で心がけるべき二つのこと
by
TrinityT _
PDF
静的サイトどこにする?
by
ogawatti
RとSQLiteで気軽にデータベース作成
by
弘毅 露崎
Mysql casial01
by
matsuo kenji
Openresty
by
ogawatti
10分で分かるLinuxブロックレイヤ
by
Takashi Hoshino
OCaml でデータ分析
by
Akinori Abe
My misstake on Ansible’s lineinfile module
by
Yukiya Hayashi
PHP matsuri 2013 Windows Azure Storage SDK for PHP
by
Takeshi Sakurai
エコなWebサーバー
by
emasaka
Nuxt.js + microCMS + netlify
by
ogawatti
ファイルサーバ構築
by
Takashi Noboru
分散データベース gun について調べた
by
keisunagawa
CouchDB JP & BigCouch
by
Yohei Sasaki
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
by
maebashi
C++のビルド高速化について
by
AimingStudy
フレッシャーズのためのパケット解析入門
by
彰 村地
10分で分かるデータストレージ
by
Takashi Hoshino
Sphinx/reST
by
Ryo Maruyama
データベースのお話
by
Hidekazu Tanaka
Webサーバ構築で心がけるべき二つのこと
by
TrinityT _
静的サイトどこにする?
by
ogawatti
Similar to Yapcasia2012 ltthon
PDF
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
by
博文 斉藤
PPTX
エンジニアという職業について
by
Hisatoshi Kikumoto
PDF
[デブサミ2012]趣味と実益の脆弱性発見
by
Yosuke HASEGAWA
PDF
RでつくるWebアプリ~rApache編~
by
Kazuya Wada
PDF
安全なプログラムの作り方
by
Kazuhiro Nishiyama
ODP
20090704rubyist九州
by
koki_h
PDF
退職PDFメーカーの作り方
by
Yo Ya
PDF
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
by
博文 斉藤
PPTX
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
by
SYUE-SIANG SU
PDF
「Html sql」で図書館hpにアクセスしてみよう
by
Kentaro Matsui
PPTX
Webクローリング&スクレイピングの最前線 公開用
by
Lumin Hacker
PDF
PHP Source Code Search with PHP
by
Sotaro Karasawa
PDF
ある戦いの記憶から探るPHPの闇と戦うコツ
by
FAL_A
PDF
かたログッ!! - 本をネットに解き放て
by
Hiroshi Takase
PDF
Backlogでの Perlのつかいかた
by
Ryuzo Yamamoto
PDF
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
by
ericsagnes
PDF
Hadoopによるリクルートでの技術調査とその活用
by
Chiaki Hatanaka
PDF
BPStudy#58 第二部「エンジニアが本とつきあう方法」
by
Hiroshi Chonan
PDF
そろそろRStudioの話
by
Kazuya Wada
PPTX
ぼくの考えた最速の開発環境┃Techlunch 2013/06/14
by
Mari Kimura
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
by
博文 斉藤
エンジニアという職業について
by
Hisatoshi Kikumoto
[デブサミ2012]趣味と実益の脆弱性発見
by
Yosuke HASEGAWA
RでつくるWebアプリ~rApache編~
by
Kazuya Wada
安全なプログラムの作り方
by
Kazuhiro Nishiyama
20090704rubyist九州
by
koki_h
退職PDFメーカーの作り方
by
Yo Ya
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
by
博文 斉藤
The Amazing Toolman - Mastering the tools and propose a hackable "Swiss Army ...
by
SYUE-SIANG SU
「Html sql」で図書館hpにアクセスしてみよう
by
Kentaro Matsui
Webクローリング&スクレイピングの最前線 公開用
by
Lumin Hacker
PHP Source Code Search with PHP
by
Sotaro Karasawa
ある戦いの記憶から探るPHPの闇と戦うコツ
by
FAL_A
かたログッ!! - 本をネットに解き放て
by
Hiroshi Takase
Backlogでの Perlのつかいかた
by
Ryuzo Yamamoto
eZ Publish勉強会2013年3月「eZ Publishの構築を簡単に!」
by
ericsagnes
Hadoopによるリクルートでの技術調査とその活用
by
Chiaki Hatanaka
BPStudy#58 第二部「エンジニアが本とつきあう方法」
by
Hiroshi Chonan
そろそろRStudioの話
by
Kazuya Wada
ぼくの考えた最速の開発環境┃Techlunch 2013/06/14
by
Mari Kimura
Yapcasia2012 ltthon
1.
「画像ダウンローダー」を作る際に 気をつけたいいくつかのこと
2012-09-28 LT-thon@YAPC::Asia2012 発表者:@ turugina
2.
What is 「画像ダウンローダー」 ●
NOT 「画像検索システム等用のクローラー」
3.
What is 「画像ダウンローダー」 ●
BUT 個人で愉しむために画像をダウンロードする ツール – ex) 某巨大掲示板の二次元画像板のスレから
4.
code
5.
●
画像ダウンロードツールを作る過程で色々な知 識・技術が身に付く – HTTP 関連 (LWP::UserAgent, HTTP::Lite,...) – ファイル関連 (File::Spec, Path::Class, ...) – コマンドラインオプション解析 (Getopt::*,...) – 永続化 / データベース (Tie::Persistent, Storable, DBI, DBD::SQLite, …) – 並行処理 / 排他制御 (threads, Coro, AnyEvent)
6.
Agenda ●
① 汝、紳士たれ ● ② 画像だと思ったら HTML だった、しにたい ● ③ \ Be on your guard! / ● ④ 貪欲に、貪欲に ● その他細々したもの
7.
① 汝、紳士たれ ●
ダウンロード先のサイトに迷惑をかけない – 同じ URL から何度もダウンロードしない ● → Tie::Persistent によるなんちゃって KVS でダウンロード 済み URL を永続化 ● → でも量が増えてきたら素直に DBI/DBD::SQLite – コネクションをキャッシュする ● → $ua->conn_cache( LWP::ConnCache->new ( total_capacity => undef ) ); – できれば1サイト 1 コネクションで済ませる ( 古い? )
8.
② 画像だと思ったら(以下略 ●
ヘッダをチェックする – my $res = $ua->mirror($url, $file); unlink($file) if $res->header('Content-Type') =~ m/text/i; ● たまに image/jpeg とか言いつつ HTML を返し てくる奴が ... – → Imager に食わせてエラーになったら消すとか
9.
③Be on your
guard! ● 見たくない画像から身を守る – サイトのブラックリスト( Og**sh とか Ro**en とか ) – もしダウンロードしてしまったら ● →URL とファイルのハッシュ (md5/SHA1 等 ) をブラックリス トに登録して削除 – Digest::MD5 、 Digest::SHA1 – ダウンロード前に URL チェック、ダウンロード後にハッ シュチェックで 2 重のガード
10.
④ 欲望に忠実に貪欲に、貪欲に ●
並行処理 – fork() ...? – use threads; use Thread::Queue; ● 固定数のワーカスレッドを立てて Queue から URL を流し込 む – use POE; …? – use Coro; use Coro::LWP; – use AnyEvent; use AnyEvent::HTTP; use Coro; use Coro::AnyEvent;
11.
細々 ●
use Clipboard; で「画像 URL を含むテキストを コピー&ペースト」の「ペースト」の部分を自動化 ● コマンドラインオプションを付けたい→ Getopt::* ● win32perl ではファイル操作時の文字コードに注 意 – 「 . ニーソ フォルダを作ってその中に画像をダウンロー ドしようとしたらカレントフォルダに変な名前のファイル が!!」
12.
おまけ ●
use threads; 版と同じ処理内容のスクリプトを Python で書いてみたら – コードは若干短く – 処理速度は若干速く – – – なりました ...orz ● くやしい!でも ..( ビクンビクン
13.
ご清聴ありがとうございました
Download