連番のH画像/動画を一気にダウンロードする2
■ このスレッドは過去ログ倉庫に格納されています
0001前スレ1
2005/12/26(月) 02:56:22実践されているノウハウを教えていただきたく再度、スレを立てさせてもらいました。
前スレ 連番のH画像を一気にダウンロードする
http://pc8.2ch.net/test/read.cgi/unix/979106537/
0269名無しさん@お腹いっぱい。
2010/02/15(月) 17:10:200270名無しさん@お腹いっぱい。
2010/02/15(月) 17:31:450271名無しさん@お腹いっぱい。
2010/02/15(月) 20:12:260272263
2010/02/15(月) 21:12:03wget なら --keep-session-cookies 併用して表示ページを経由する。
オリジナルをダウンロードする場合はログインスクリプト書いて
そのクッキー使う。DL数に厳しい上限あり。
ログインしておけば通常の画像も帯域が増えるよ。
0273名無しさん@お腹いっぱい。
2010/02/15(月) 21:39:22俺もサムネしか落ちないな
0274名無しさん@お腹いっぱい。
2010/02/15(月) 22:01:39あながち嘘ではない。ソースあるんだから、なんとかしたい人ならこれをベースになんとかする。
0275名無しさん@お腹いっぱい。
2010/02/15(月) 22:57:20一週間の掲載期間は長かったかしら。
まぁ洒落なんだからそんなに突っ込まないでくれ。
こんなところでそのまんま自前のソース広げて使われ
まくった挙句に変な対策でもされたら面倒だからね。
>>267 phpはgzip展開圧縮も普通に出来るよ。
0276名無しさん@お腹いっぱい。
2010/02/18(木) 13:16:01$ua->agent("Mozilla/5.0 (Windows; U; Windows NT 6.0; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)");
$ua->proxy('http', 'http://127.0.0.1:65536/');
0277名無しさん@お腹いっぱい。
2010/02/19(金) 02:08:37対策されたか?
0278名無しさん@お腹いっぱい。
2010/02/19(金) 15:36:480279名無しさん@お腹いっぱい。
2010/02/19(金) 16:21:20こっちも対策するぞ
0280名無しさん@お腹いっぱい。
2010/02/19(金) 17:21:23** make directory **
the list name is 0f9cd89d5b.list.
the directory name is 0f9cd89d5b.
0f9cd89d5b does exist.
doesn't make a directory.
** get 98 pics **
get pic's html file (1/98).
get html : success. (200 OK), [dummy.html]
get [0] ...:
HTTP::Response=HASH(0x2fd6994)->status_line, [0] : failed to download pic. try a
gain (5/5).
wait/sleep 3 sec : [***]
これを5回繰り返して止まる
0281名無しさん@お腹いっぱい。
2010/02/19(金) 18:19:24scrapeimgname() と scrapeimgurl() がファイル名と url を
抽出できなくなっただけ. これらの関数は getpics() から呼び出され,
抽出できなかった場合に return 0 するが, getpics() 側で特にエラー処理
してないので, エラーにならず get [0] ... とかなって走りつづけてる
(本当は 0 のとこに scrapeimgname() の戻り値であるファイル名が入る).
モジュールに依存しないように html の parse を自前でやってるが,
俺は面倒なので, HTML::TreeBuilder::XPath 使って書き直した.
あと HTTP::Response->status_line がメソッド呼び出しなのに
double quote で文字列展開しようとしてるので, status_line が
正しく表示できてないのもバグっぽい.
"@{[ $res->status_line ]}" とかしといた方がいい.
0282名無しさん@お腹いっぱい。
2010/02/19(金) 18:51:06QoSでperlへの帯域絞るしか無い?
0283名無しさん@お腹いっぱい。
2010/02/19(金) 22:35:10オリジナルは画像鯖のドメインでマッチングしてたんだけど、ドメインが変わったからマッチしなくなったんだね。
>>282
オリジナルだと4秒ぐらいで取りに行っちゃうから、間隔を10秒以上とるようにsleepを書き換えるとけっこう快適になるよ。
0284名無しさん@お腹いっぱい。
2010/02/19(金) 23:06:49サブルーチンを書き換えればいいのかな
0285名無しさん@お腹いっぱい。
2010/02/19(金) 23:17:33とか?
0286名無しさん@お腹いっぱい。
2010/02/19(金) 23:19:13そうそう。waitpとかいう名前だったはず。
0287名無しさん@お腹いっぱい。
2010/02/19(金) 23:21:06書出すファイル名は、altタグから引っぱればいいかな。
0288名無しさん@お腹いっぱい。
2010/02/19(金) 23:23:28便乗して悪いけど
img id.* ってのはscrape〜の
if ( m|src="http://r.e-hentai.org/.*?"| )
の部分のことでいいのかしら
0289名無しさん@お腹いっぱい。
2010/02/19(金) 23:25:00とか?
0290名無しさん@お腹いっぱい。
2010/02/19(金) 23:26:00base/1000の間違い
すまぬ
0291名無しさん@お腹いっぱい。
2010/02/20(土) 01:13:580292157
2010/02/20(土) 01:54:50waitpの時間延長を施した新ヴァージョンができました
http://www1.axfc.net/uploader/Sc/so/84683.zip&key=ehg
0293名無しさん@お腹いっぱい。
2010/02/20(土) 11:01:04ちゃんと動いてます。
0294名無しさん@お腹いっぱい。
2010/02/20(土) 17:10:24my $ua = LWP::UserAgent->new;
$ua->agent("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0;rv:1.9.2)
");
$ua->timeout(180);
$ua->proxy('http', 'http://127.0.0.1:80/');
0296名無しさん@お腹いっぱい。
2010/02/21(日) 13:12:16むしろ '常識知らねーな' と言われそうな変更を試してる。
これで4ページ/分のペースで14冊330ページ99MBまで落としたが
一向に帯域制限がやって来ない。昨夜は引っ掛かりまくりだったし
今まで3日の間を空けたってこんなこと無かったんだがな。
サーバのプログラムが変わったばかりらしいがバグを突けたのか?
それとも今日は感謝デーなのか?
0297名無しさん@お腹いっぱい。
2010/02/21(日) 13:21:48変更前と後のスクリプトで試してみて
両方とも帯域制限が来ないなら
今日は感謝デー
後の変更済みスクリプトだけに帯域制限がこないなら
その変更は大当たり
0298名無しさん@お腹いっぱい。
2010/02/21(日) 13:35:43おぉ、そりゃそうだ。舞い上がって変化点検証の基本を忘れてた。やってみる。
0299名無しさん@お腹いっぱい。
2010/02/21(日) 14:56:32変更前のコードでも222ページ75MBまでスルスル落とせた後に 509 がやってきた。
その直後に変更後のコードを掛けてみたがやっぱり 509 だった。
多分週末メンテナンスで俺のカウンタがリセットしたとかなんだろうな。
クッキーなくなってるね。リダイレクトもなし。img id=xxx は相変わらず付いてるけど
肝心の id の値はHTML本文中に見つからない。
0300名無しさん@お腹いっぱい。
2010/02/21(日) 16:34:570301名無しさん@お腹いっぱい。
2010/02/21(日) 20:17:10オレもそういうページあるけど多分複数ページじゃなくて単独ページの場所だと
動かないっぽい。
ベースページを解析するルーチンで1ページしかないページだと構文解析できずに
終わってるっぽいな。
直すのめんどいんで手作業でやってるけどね。
ついでだけど500枚くらいのやつだとエラー途中までしかDLしないのは仕様?
0302名無しさん@お腹いっぱい。
2010/02/22(月) 07:58:48各画像ページのURL取得までは行っているんだが、<a class="noul" href=~~~>のタグを取り込まない
難しいぜ
0303名無しさん@お腹いっぱい。
2010/02/22(月) 22:40:38スクリプトの、サブルーチンgeturllistの以下を変更してみました。
変更前 if ( $a[$i] =~ /$url/ and $a[$i] =~ /[0-9]$/ )
変更後 if ( $a[$i] =~ /$url/ and $a[$i] =~ /¥/[0-9]+$/ )
単ページで、エラー400が出なくなりました。
ゴミを拾っていたようです。
0305名無しさん@お腹いっぱい。
2010/02/24(水) 01:32:34157さん、いつもありがとう。
ダウン終了時や転送制限時に、saykanaコマンドつかって、ゆっくりに喋って
お知らせしてもらう様に改造して、使ってます。
だいたい、70から160枚くらいで制限を、喰らいます。
ゆっくり待ちます制限解除をw
0306名無しさん@お腹いっぱい。
2010/02/25(木) 16:42:41どうしたらよいのだろうか
0307名無しさん@お腹いっぱい。
2010/02/25(木) 18:14:01もう一度おなじコマンドで。
get.pl -l 513894289.list
で制限くらったら、もう一回
get.pl -l 513894289.list
とかする。
get.pl -u [URL]
でやってる人はlistができてるんで
できたlistで
get.pl -l [list file]
とやる。
0308名無しさん@お腹いっぱい。
2010/02/25(木) 20:30:53http://g.e-hentai.org/g/******/**********/1-m-y/2 から
http://g.e-hentai.org/g/******/**********/1-m-y/5 までの計4ページの画像を取得とか
0309名無しさん@お腹いっぱい。
2010/02/25(木) 20:41:40.listファイルを、テキストエディタで開いて、不必要な行を削除すればいいんじゃね?
或いはスクリプトで、分割したい箇所だけのファイル作る。
0310名無しさん@お腹いっぱい。
2010/02/25(木) 22:16:42$ less hoge.list | perl -le '@a=<>;print splice(@a,1*16-1,4*16)' > hoge2-5.list
0311名無しさん@お腹いっぱい。
2010/02/26(金) 01:23:55Invalid argument at get.pl line 454
とエラーをはくのですが、対処法はありますか?
0312名無しさん@お腹いっぱい。
2010/02/26(金) 02:29:44$ get.pl -l hoge.list
0313名無しさん@お腹いっぱい。
2010/02/26(金) 21:29:27そのように宣言しているつもりなのですがうまくいきません…
0314名無しさん@お腹いっぱい。
2010/02/26(金) 21:44:03OSやperlのバージョンに因るのかな?
MacOS X 10.4.11(PPC) perl, v5.8.6
0315308
2010/02/26(金) 22:27:47ありがとうございます
ついさっき気付いたけど、1ページのみのlistファイルを取得することも可能なんですね
数ページだけの画像をDLしたい場合には、無駄なページを取得する手間が省けますね
0316名無しさん@お腹いっぱい。
2010/02/26(金) 23:18:55XP HomeEdition SP2 perl v5.10.1
で動きません…
0317名無しさん@お腹いっぱい。
2010/02/26(金) 23:42:34>304の最新バージョンで試してみた?
それでダメなら、エラーを起こす行の前に、print で変数の確認やってみて。
0318名無しさん@お腹いっぱい。
2010/02/26(金) 23:59:07やはり動きません…
0319名無しさん@お腹いっぱい。
2010/02/27(土) 00:08:240320名無しさん@お腹いっぱい。
2010/02/27(土) 00:17:02ところでE−HENの制限って80MBくらいなんでしょうか
ルータ再起動して使う分には問題ありませんが大体そのあたりでとまります
0321名無しさん@お腹いっぱい。
2010/02/27(土) 00:45:36これ以上はご迷惑なので失礼します…
0322名無しさん@お腹いっぱい。
2010/03/02(火) 21:16:24ところで、これ管理者権限で実行する必要ないですよね?
管理者権限で実行すると画像の保存先がわからない・・・
0323名無しさん@お腹いっぱい。
2010/03/02(火) 21:50:54CRC A621
CRC32 62B3FF7E
MD5 5F92B5C9A6A45640ED45EF63A545BC29
SHA1 E036679C61FEE1689E75BC780FE1F4D644A127DD
同じ症状の人いないかな
昨日までは普通に落ちてきてたんだけど
うちだけ?
0324名無しさん@お腹いっぱい。
2010/03/02(火) 21:58:17いつまでもイメージタグの "id=" に頼っていては駄目。
このサイト全般に言えることだが "[0-9a-z]{40}-" の様なハッシュ値状の
モノを持つURLをターゲットにした方がよろしいかと。
0325名無しさん@お腹いっぱい。
2010/03/02(火) 23:27:01いろいろと対策強化されてるなぁ
0326名無しさん@お腹いっぱい。
2010/03/02(火) 23:36:070327名無しさん@お腹いっぱい。
2010/03/02(火) 23:51:42@style != "" and @id
かな
0328名無しさん@お腹いっぱい。
2010/03/02(火) 23:53:300329名無しさん@お腹いっぱい。
2010/03/03(水) 00:08:26スクリプトも気を利かせてたまに広告踏んでやる位の優しさは必要だ。
0330名無しさん@お腹いっぱい。
2010/03/03(水) 02:17:26そしたらきちんと待つから
0331名無しさん@お腹いっぱい。
2010/03/03(水) 02:44:1324分待てとか、表示されるし。
もう寝る。
0332名無しさん@お腹いっぱい。
2010/03/03(水) 10:57:100333名無しさん@お腹いっぱい。
2010/03/03(水) 12:34:27それをするとどういう得が……?
0334名無しさん@お腹いっぱい。
2010/03/03(水) 15:27:54画像落とす方がだめだね
0335名無しさん@お腹いっぱい。
2010/03/03(水) 16:34:53>>304のほどフレンドリーじゃないよ
ttp://www1.axfc.net/uploader/Sc/so/88409.zip
>>333 プログラムの見通しが良くなって俺が少しニッコリする
0336名無しさん@お腹いっぱい。
2010/03/03(水) 22:29:29なるほど!
なんとか、出来そうだ。しかし、ファイル名取得が面倒だな。
img id参照して、正規表現にぶっこんでみるか。
0337名無しさん@お腹いっぱい。
2010/03/03(水) 23:43:52自分はオリジナル(?)のファイル名にこだわる必要は無いと思うのだが。
再度ZIPにしてどこかにアップし直す職人なら別だけどね。
実際1つのギャラリーに同じファイル名のものが有ったりするので
重複時の処理をするよりページ番号の連番で振りなおす方がらくだと思うよ。
0338名無しさん@お腹いっぱい。
2010/03/04(木) 00:00:18それも考えたが、なんか悔しいのでimg id参照して正規表現で、取出した。
もっとも、get.plを少改造して、四桁連番+オリジナルファイル名にしている。(重複防止用に)
今のところ、正常にダウンロード出来ているみたい。
0339名無しさん@お腹いっぱい。
2010/03/04(木) 00:06:22でもたまに変な空白が入っていたりするし、万一 alt="/etc/passwd" とか書かれた
場合には備えておきなよ。
0340名無しさん@お腹いっぱい。
2010/03/04(木) 00:21:39>万一 alt="/etc/passwd" とか書かれた
うへぇ、いやすぐる。対策しておこう。ご忠告ありがとう。
0341名無しさん@お腹いっぱい。
2010/03/04(木) 20:01:02get.pl修正のヒントを教えてくだしあ
どうか
0342名無しさん@お腹いっぱい。
2010/03/04(木) 20:08:060343名無しさん@お腹いっぱい。
2010/03/04(木) 21:57:02自分はずっとこれでしのいでいるが、その反面 "509s.gif" 等を美しく検出できずに
悩ましい日を送っているのだよ。なんか堅牢な手法ない?
0344名無しさん@お腹いっぱい。
2010/03/04(木) 22:03:25名前で検出
ステータスコード509そのものを検出
くらいしか思いつかない
0345名無しさん@お腹いっぱい。
2010/03/04(木) 22:37:12ドキュメントのソースを見てて気が付いたんだが、idを持ったイメージタグを全部
抜き出したとき、他に重複しないidを持つのがターゲットだな。それ以外は
上下に表示してるので2個ずつある。
決してスマートとはいえないが画像名やホスト名決め打ちしない分変化には強いかも。
中の人、若干策に溺れた気がしてきたよ。
0346名無しさん@お腹いっぱい。
2010/03/04(木) 23:43:04その中で一番サイズが大きいのを取ってくる……
っていうのはどうだろう。
0347名無しさん@お腹いっぱい。
2010/03/05(金) 18:27:12そんなに変わってないと思うんだけどなぁ・・・
試しに、1枚目の html と 2枚目の html を保存して、WinMerge とかで比較
してみれば、どこの html を引っこ抜いてダウンロードするかわかるんでないの?
0348名無しさん@お腹いっぱい。
2010/03/05(金) 21:04:00楽しいじゃねぇか
0349名無しさん@お腹いっぱい。
2010/03/05(金) 21:49:40暇人なのか?w
0350名無しさん@お腹いっぱい。
2010/03/05(金) 21:56:590351名無しさん@お腹いっぱい。
2010/03/05(金) 22:00:20逆にありがたいが。
0352名無しさん@お腹いっぱい。
2010/03/05(金) 22:24:450353名無しさん@お腹いっぱい。
2010/03/05(金) 22:28:00その「、」の入れ方はゴルゴ13みたいでかっこいいな。
0354名無しさん@お腹いっぱい。
2010/03/05(金) 22:39:43日替わりで変更とか来たら、ある意味面白いな。
0355名無しさん@お腹いっぱい。
2010/03/05(金) 22:45:14これナニ?
例のloli規制の名残?
0356名無しさん@お腹いっぱい。
2010/03/05(金) 22:51:040357午後は@お腹いっぱい
2010/03/06(土) 08:40:28curl -O "http://www.hoge.com/[1-5].jpg"
0358名無しさん@お腹いっぱい。
2010/03/06(土) 12:59:13修正点を教えてください。
0359名無しさん@お腹いっぱい。
2010/03/06(土) 13:00:31なぜか最近Hpricotでページの取得をしたら文字化けしたデータしか取れなくなった
誰か原因は分かりませんかね?
0360名無しさん@お腹いっぱい。
2010/03/06(土) 13:05:020361名無しさん@お腹いっぱい。
2010/03/06(土) 13:31:15取得したデータの文字コードを変換する
0362359
2010/03/06(土) 14:19:11それはもう試してあるんだけど何故か無理だった
一応取得データをそのままファイルとして保存して文字コードをUTF-8にしても文字化けするから
取得データ自体に何か問題があると考えてる
0363名無しさん@お腹いっぱい。
2010/03/06(土) 14:19:45最近加えたプログラムや環境の変更に不具合があると思う。
なければ中の人に「すぐ元に戻せや迷惑なんじゃ何様のつもりじゃ」と訴える。
判らなければ検証用コードを見せてRubyに詳しい人に尋ねる。
0364名無しさん@お腹いっぱい。
2010/03/06(土) 14:26:39get.plも、htmlファイルが落ちてこなくて生のgzipファイルが出来る。
0365名無しさん@お腹いっぱい。
2010/03/06(土) 14:38:280366359
2010/03/06(土) 14:43:52データの拡張子をgzに変更して解凍してみたらそれらしいhtmlファイルが出来たから確かにgzipファイルが原因っぽい
どうやって対策しようものか・・・
rubyでgzipって解凍できたっけ?
0367名無しさん@お腹いっぱい。
2010/03/06(土) 14:56:30良かった解決、じゃなくてどこをどう弄ったらgzipエンコードされたのか原因を知っとかないと
きっとこれからも同じ失敗を何度もするよ。
0368名無しさん@お腹いっぱい。
2010/03/06(土) 15:44:54めんどいからコマンドで対応した。
0369359
2010/03/06(土) 17:06:38今回の問題は、自分がプログラムを弄った為に発生した問題じゃなかったから迷ってたんですよ
E-Hentai側の圧縮転送への仕様変更が原因で発生したからだと思います
もし、それ以前にも圧縮転送をしていたのならば見当違いですけど・・・
ともかく忠告ありがとうございます
プログラムの方はちゃんと再び動くようになりました
■ このスレッドは過去ログ倉庫に格納されています