トップページunix
1001コメント292KB

連番のH画像/動画を一気にダウンロードする2

■ このスレッドは過去ログ倉庫に格納されています
0001前スレ12005/12/26(月) 02:56:22
前スレ5年間のご愛顧ありがとうございました。PGFは無事コンプしましたが、これからも皆様の日々
実践されているノウハウを教えていただきたく再度、スレを立てさせてもらいました。
前スレ 連番のH画像を一気にダウンロードする
http://pc8.2ch.net/test/read.cgi/unix/979106537/
0285名無しさん@お腹いっぱい。2010/02/19(金) 23:17:33
$t=(rnd($base1000))+10

とか?
0286名無しさん@お腹いっぱい。2010/02/19(金) 23:19:13
>>284
そうそう。waitpとかいう名前だったはず。
0287名無しさん@お腹いっぱい。2010/02/19(金) 23:21:06
私も、img idでマッチする様に書換えて、動きました。
書出すファイル名は、altタグから引っぱればいいかな。
0288名無しさん@お腹いっぱい。2010/02/19(金) 23:23:28
>>283
便乗して悪いけど
img id.* ってのはscrape〜の
if ( m|src="http://r.e-hentai.org/.*?"| )
の部分のことでいいのかしら
0289名無しさん@お腹いっぱい。2010/02/19(金) 23:25:00
$t=(rnd($base1000))+10

とか?
0290名無しさん@お腹いっぱい。2010/02/19(金) 23:26:00
うあ
base/1000の間違い
すまぬ
0291名無しさん@お腹いっぱい。2010/02/20(土) 01:13:58
perlの記述がよく分からないんだけども 正規表現とかimgタグとかは他の言語とかと一緒なのかな
02921572010/02/20(土) 01:54:50
URLとイメージ名のスクレイパの正規表現の手直しと
waitpの時間延長を施した新ヴァージョンができました

http://www1.axfc.net/uploader/Sc/so/84683.zip&key=ehg
0293名無しさん@お腹いっぱい。2010/02/20(土) 11:01:04
157さんサンクス!
ちゃんと動いてます。
0294名無しさん@お腹いっぱい。2010/02/20(土) 17:10:24
use LWP ;
my $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/');
02951572010/02/20(土) 21:05:59
上のバージョンで>>281氏のstatus_lineのデバッグ入れるの忘れてました
すいません
0296名無しさん@お腹いっぱい。2010/02/21(日) 13:12:16
今スクリプトのデバッグ中にふと思いついたしょーもない
むしろ '常識知らねーな' と言われそうな変更を試してる。

これで4ページ/分のペースで14冊330ページ99MBまで落としたが
一向に帯域制限がやって来ない。昨夜は引っ掛かりまくりだったし
今まで3日の間を空けたってこんなこと無かったんだがな。
サーバのプログラムが変わったばかりらしいがバグを突けたのか?
それとも今日は感謝デーなのか?
0297名無しさん@お腹いっぱい。2010/02/21(日) 13:21:48
>>296
変更前と後のスクリプトで試してみて
両方とも帯域制限が来ないなら
今日は感謝デー

後の変更済みスクリプトだけに帯域制限がこないなら
その変更は大当たり
0298名無しさん@お腹いっぱい。2010/02/21(日) 13:35:43
>>297
おぉ、そりゃそうだ。舞い上がって変化点検証の基本を忘れてた。やってみる。
0299名無しさん@お腹いっぱい。2010/02/21(日) 14:56:32
すまん。サービス期間中だったようだ。
変更前のコードでも222ページ75MBまでスルスル落とせた後に 509 がやってきた。
その直後に変更後のコードを掛けてみたがやっぱり 509 だった。
多分週末メンテナンスで俺のカウンタがリセットしたとかなんだろうな。

クッキーなくなってるね。リダイレクトもなし。img id=xxx は相変わらず付いてるけど
肝心の id の値はHTML本文中に見つからない。
0300名無しさん@お腹いっぱい。2010/02/21(日) 16:34:57
157さんのツールで、DLするページによってサムネイルページで400エラーを吐くのは何故でしょうか?
0301名無しさん@お腹いっぱい。2010/02/21(日) 20:17:10
>>300
オレもそういうページあるけど多分複数ページじゃなくて単独ページの場所だと
動かないっぽい。
ベースページを解析するルーチンで1ページしかないページだと構文解析できずに
終わってるっぽいな。

直すのめんどいんで手作業でやってるけどね。

ついでだけど500枚くらいのやつだとエラー途中までしかDLしないのは仕様?
0302名無しさん@お腹いっぱい。2010/02/22(月) 07:58:48
>>265のスクリプト改造を試しているが上手くいかない…

各画像ページのURL取得までは行っているんだが、<a class="noul" href=~~~>のタグを取り込まない
難しいぜ
0303名無しさん@お腹いっぱい。2010/02/22(月) 22:40:38
>>300
スクリプトの、サブルーチンgeturllistの以下を変更してみました。
変更前 if ( $a[$i] =~ /$url/ and $a[$i] =~ /[0-9]$/ )
変更後 if ( $a[$i] =~ /$url/ and $a[$i] =~ /¥/[0-9]+$/ )

単ページで、エラー400が出なくなりました。
ゴミを拾っていたようです。
03041572010/02/22(月) 23:33:25
>>303
手直ししました
置いておきます
ttp://www1.axfc.net/uploader/Sc/so/85668.zip
0305名無しさん@お腹いっぱい。2010/02/24(水) 01:32:34
>>304
157さん、いつもありがとう。
ダウン終了時や転送制限時に、saykanaコマンドつかって、ゆっくりに喋って
お知らせしてもらう様に改造して、使ってます。
だいたい、70から160枚くらいで制限を、喰らいます。
ゆっくり待ちます制限解除をw
0306名無しさん@お腹いっぱい。2010/02/25(木) 16:42:41
制限食らったらリストの途中から再開するようにするには
どうしたらよいのだろうか
0307名無しさん@お腹いっぱい。2010/02/25(木) 18:14:01
>>306
もう一度おなじコマンドで。

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:53
あるページからあるページまでを指定してDLすることってできないかな

http://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
>>308
.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:55
listファイルから続きをダウンしようとすると
Invalid argument at get.pl line 454
とエラーをはくのですが、対処法はありますか?
0312名無しさん@お腹いっぱい。2010/02/26(金) 02:29:44
listファイルの有るデレクトリィで
$ get.pl -l hoge.list
0313名無しさん@お腹いっぱい。2010/02/26(金) 21:29:27
>>312
そのように宣言しているつもりなのですがうまくいきません…
0314名無しさん@お腹いっぱい。2010/02/26(金) 21:44:03
家では、ちゃんと動いているよ。
OSやperlのバージョンに因るのかな?
MacOS X 10.4.11(PPC) perl, v5.8.6
03153082010/02/26(金) 22:27:47
>>309-310
ありがとうございます
ついさっき気付いたけど、1ページのみのlistファイルを取得することも可能なんですね
数ページだけの画像をDLしたい場合には、無駄なページを取得する手間が省けますね
0316名無しさん@お腹いっぱい。2010/02/26(金) 23:18:55
むう…こちらは
XP HomeEdition SP2 perl v5.10.1
で動きません…
0317名無しさん@お腹いっぱい。2010/02/26(金) 23:42:34
>>316
>304の最新バージョンで試してみた?
それでダメなら、エラーを起こす行の前に、print で変数の確認やってみて。
0318名無しさん@お腹いっぱい。2010/02/26(金) 23:59:07
listも画像の名前も正しい物が入ってるのは確認できたのですが…
やはり動きません…
0319名無しさん@お腹いっぱい。2010/02/27(土) 00:08:24
ディレクトリのパーミッションかも
0320名無しさん@お腹いっぱい。2010/02/27(土) 00:17:02
こちらではメインの7 64bit サブのxp pro共に快適に動いてます
ところでE−HENの制限って80MBくらいなんでしょうか
ルータ再起動して使う分には問題ありませんが大体そのあたりでとまります
0321名無しさん@お腹いっぱい。2010/02/27(土) 00:45:36
パーミッションも問題はありませんでした
これ以上はご迷惑なので失礼します…
0322名無しさん@お腹いっぱい。2010/03/02(火) 21:16:24
>>304 すげー!!!マジうpありがとうございます。

ところで、これ管理者権限で実行する必要ないですよね?
管理者権限で実行すると画像の保存先がわからない・・・
0323名無しさん@お腹いっぱい。2010/03/02(火) 21:50:54
>>304 のすくりぷと昨日からこんなファイルが落ちてくるようになったんだけど

CRC 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:07
imgタグ中のwidthとheightを見て一番大きいものを対象にするっていう手もあるかな。
0327名無しさん@お腹いっぱい。2010/03/02(火) 23:51:42
自前で作っちまったスクリプト使ってるけど今んとこ
@style != "" and @id
かな
0328名無しさん@お腹いっぱい。2010/03/02(火) 23:53:30
あとbandwidth limitは緩くなってる気がする
0329名無しさん@お腹いっぱい。2010/03/03(水) 00:08:26
まぁ中の人も張り切ってると思うがイタチごっこだよな。
スクリプトも気を利かせてたまに広告踏んでやる位の優しさは必要だ。
0330名無しさん@お腹いっぱい。2010/03/03(水) 02:17:26
中の人http response codeを画像じゃなくてヘッダで渡してくれ
そしたらきちんと待つから
0331名無しさん@お腹いっぱい。2010/03/03(水) 02:44:13
あいや〜、スクリプト直そうとテストしてたら、制限くらちゃったよ。
24分待てとか、表示されるし。
もう寝る。
0332名無しさん@お腹いっぱい。2010/03/03(水) 10:57:10
クソ、>>304が使えなくなった
0333名無しさん@お腹いっぱい。2010/03/03(水) 12:34:27
>>330
それをするとどういう得が……?
0334名無しさん@お腹いっぱい。2010/03/03(水) 15:27:54
irvリストは作れる
画像落とす方がだめだね
0335名無しさん@お腹いっぱい。2010/03/03(水) 16:34:53
おまえらのHDDにPython入れる理由をやるよ
>>304のほどフレンドリーじゃないよ
ttp://www1.axfc.net/uploader/Sc/so/88409.zip
>>333 プログラムの見通しが良くなって俺が少しニッコリする
0336名無しさん@お腹いっぱい。2010/03/03(水) 22:29:29
>>324
なるほど!
なんとか、出来そうだ。しかし、ファイル名取得が面倒だな。
img id参照して、正規表現にぶっこんでみるか。
0337名無しさん@お腹いっぱい。2010/03/03(水) 23:43:52
>>336
自分はオリジナル(?)のファイル名にこだわる必要は無いと思うのだが。
再度ZIPにしてどこかにアップし直す職人なら別だけどね。
実際1つのギャラリーに同じファイル名のものが有ったりするので
重複時の処理をするよりページ番号の連番で振りなおす方がらくだと思うよ。
0338名無しさん@お腹いっぱい。2010/03/04(木) 00:00:18
>>337
それも考えたが、なんか悔しいのでimg id参照して正規表現で、取出した。
もっとも、get.plを少改造して、四桁連番+オリジナルファイル名にしている。(重複防止用に)
今のところ、正常にダウンロード出来ているみたい。
0339名無しさん@お腹いっぱい。2010/03/04(木) 00:06:22
その気持ちもわかるし自分もそうしているんだけどね。
でもたまに変な空白が入っていたりするし、万一 alt="/etc/passwd" とか書かれた
場合には備えておきなよ。
0340名無しさん@お腹いっぱい。2010/03/04(木) 00:21:39
>>339
>万一 alt="/etc/passwd" とか書かれた
うへぇ、いやすぐる。対策しておこう。ご忠告ありがとう。
0341名無しさん@お腹いっぱい。2010/03/04(木) 20:01:02
VBやJavaをちょっぴり出来る人向けに
get.pl修正のヒントを教えてくだしあ
どうか
0342名無しさん@お腹いっぱい。2010/03/04(木) 20:08:06
ヒントは>>324
0343名無しさん@お腹いっぱい。2010/03/04(木) 21:57:02
書いた者だが申し訳ない、16進表記なので"[0-9a-f]{40}-"だったね。
自分はずっとこれでしのいでいるが、その反面 "509s.gif" 等を美しく検出できずに
悩ましい日を送っているのだよ。なんか堅牢な手法ない?
0344名無しさん@お腹いっぱい。2010/03/04(木) 22:03:25
サイズで検出
名前で検出
ステータスコード509そのものを検出

くらいしか思いつかない
0345名無しさん@お腹いっぱい。2010/03/04(木) 22:37:12
イメージのidの値が解析できりゃ良いんだけどなと思いながら>>343を書いた後
ドキュメントのソースを見てて気が付いたんだが、idを持ったイメージタグを全部
抜き出したとき、他に重複しないidを持つのがターゲットだな。それ以外は
上下に表示してるので2個ずつある。
決してスマートとはいえないが画像名やホスト名決め打ちしない分変化には強いかも。
中の人、若干策に溺れた気がしてきたよ。
0346名無しさん@お腹いっぱい。2010/03/04(木) 23:43:04
個別の画像ページにある画像のhttpヘッダを全部取得、
その中で一番サイズが大きいのを取ってくる……
っていうのはどうだろう。
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
また、http://g.e-hentai.orgの仕様変わったの?
暇人なのか?w
0350名無しさん@お腹いっぱい。2010/03/05(金) 21:56:59
ふぅ、しょーもない姑息な手を使いやがって...ずっこけちゃったじゃないか。
0351名無しさん@お腹いっぱい。2010/03/05(金) 22:00:20
なんかシンプルなhtmlに、なってるな。
逆にありがたいが。
0352名無しさん@お腹いっぱい。2010/03/05(金) 22:24:45
新しいのでも古いのでも、divセクションの最初のネストのhrefとimgがそれってことでOK?
0353名無しさん@お腹いっぱい。2010/03/05(金) 22:28:00
>>351
その「、」の入れ方はゴルゴ13みたいでかっこいいな。
0354名無しさん@お腹いっぱい。2010/03/05(金) 22:39:43
ダウンローダー対策なんだろうけど、今回は矢継ぎ早だな。
日替わりで変更とか来たら、ある意味面白いな。
0355名無しさん@お腹いっぱい。2010/03/05(金) 22:45:14
先ほどダウンした画像(g.e-hentai.org)の中に、403.gifが一枚だけあるんだけど?
これナニ?
例のloli規制の名残?
0356名無しさん@お腹いっぱい。2010/03/05(金) 22:51:04
403は403だろ。404の友達みたいなものだ。
0357午後は@お腹いっぱい2010/03/06(土) 08:40:28
Darwin上で下記とするがうまく行かず。落とす事は落とすぞ
curl -O "http://www.hoge.com/[1-5].jpg"
0358名無しさん@お腹いっぱい。2010/03/06(土) 12:59:13
get.plですが、get html : error. (400 URL missing)となります。
修正点を教えてください。
0359名無しさん@お腹いっぱい。2010/03/06(土) 13:00:31
自分はrubyでE-Hentaiの画像自動取得のプログラムを作ってるんだけど、
なぜか最近Hpricotでページの取得をしたら文字化けしたデータしか取れなくなった
誰か原因は分かりませんかね?
0360名無しさん@お腹いっぱい。2010/03/06(土) 13:05:02
俺なんか普通に閲覧しようとしても文字化けだよ
0361名無しさん@お腹いっぱい。2010/03/06(土) 13:31:15
>>359
取得したデータの文字コードを変換する
03623592010/03/06(土) 14:19:11
>>361
それはもう試してあるんだけど何故か無理だった
一応取得データをそのままファイルとして保存して文字コードをUTF-8にしても文字化けするから
取得データ自体に何か問題があると考えてる
0363名無しさん@お腹いっぱい。2010/03/06(土) 14:19:45
>>359
最近加えたプログラムや環境の変更に不具合があると思う。
なければ中の人に「すぐ元に戻せや迷惑なんじゃ何様のつもりじゃ」と訴える。
判らなければ検証用コードを見せてRubyに詳しい人に尋ねる。
0364名無しさん@お腹いっぱい。2010/03/06(土) 14:26:39
文字化けじゃなくてgzipエンコードじゃね?
get.plも、htmlファイルが落ちてこなくて生のgzipファイルが出来る。
0365名無しさん@お腹いっぱい。2010/03/06(土) 14:38:28
でも前は今のままでもうまく行ってたんだろ?
03663592010/03/06(土) 14:43:52
>>364
データの拡張子をgzに変更して解凍してみたらそれらしいhtmlファイルが出来たから確かにgzipファイルが原因っぽい
どうやって対策しようものか・・・
rubyでgzipって解凍できたっけ?
0367名無しさん@お腹いっぱい。2010/03/06(土) 14:56:30
>>366
良かった解決、じゃなくてどこをどう弄ったらgzipエンコードされたのか原因を知っとかないと
きっとこれからも同じ失敗を何度もするよ。
0368名無しさん@お腹いっぱい。2010/03/06(土) 15:44:54
gzipコマンド呼び出して対応するか、content_encoding対応したモジュール使うか?
めんどいからコマンドで対応した。
03693592010/03/06(土) 17:06:38
>>367
今回の問題は、自分がプログラムを弄った為に発生した問題じゃなかったから迷ってたんですよ
E-Hentai側の圧縮転送への仕様変更が原因で発生したからだと思います
もし、それ以前にも圧縮転送をしていたのならば見当違いですけど・・・
ともかく忠告ありがとうございます

プログラムの方はちゃんと再び動くようになりました
0370名無しさん@お腹いっぱい。2010/03/06(土) 18:57:30
>>369
おぉぅ、本当だね。試しにリクエストヘッダの 「Content-Encoding: gzip」を消してみたが
サーバは勝手にgzipして送ってくる。以前はこういう場合は平文で送ってきてたのに。

ちなみに圧縮されているかどうかはレスポンスヘッダに書いてあるよ。

HTTP/1.0 200 OK
Server: Apache
Content-Encoding: gzip ←圧縮形式
Content-Type: text/html; charset=UTF-8
Content-Length: 1550 ←これは圧縮された状態のドキュメントサイズ
   :

ちなみに自分はdeflateで圧縮されるとチト困るんだが。
0371名無しさん@お腹いっぱい。2010/03/06(土) 18:59:40
ごめん削ったのは「Accept-Encoding」が正しい。
0372名無しさん@お腹いっぱい。2010/03/06(土) 20:47:09
get.pl だけど, gethtml() の $res->content を decoded_content にすれば 
gzip を decode 出来る(HTTP::Messageを参照).
decode されて is_utf8 なので, そのまま出力すると warning が出るから,
ファイルハンドラの HTML を encoding つきで open するか, binmode で設定する.

具体的には gethtml() の以下の部分.
- open (HTML, "> $sfn") or die $! ;
+ open (HTML, '>:encoding(utf8)', $sfn) or die $! ;
- print HTML $res->content ;
+ print HTML $res->decoded_content ;

gzipped ファイルに必死で matching を試みた俺に乾杯.
でも折角圧縮してくれてるんだから, こっちで decode してやるのが人だと思う.
0373名無しさん@お腹いっぱい。2010/03/06(土) 23:15:50
LWP::UserAgentって、gzipデコードできるんだ
知らんかったよ勉強になった
0374名無しさん@お腹いっぱい。2010/03/07(日) 22:53:29
早速対応したんだけど今回509の時間ちょーなげー
0375名無しさん@お腹いっぱい。2010/03/08(月) 00:21:43
今回はgzipよりamp;につかまった
0376名無しさん@お腹いっぱい。2010/03/08(月) 01:22:06
文字参照の落とし穴
見事わっちも、ひっかりました。以前は、動いていた気がするけど気のせい?
0377名無しさん@お腹いっぱい。2010/03/08(月) 08:57:13
1ip1日100枚前後になっちった
1日に20冊くらい良いのが上がるから串踏むようなツールに変えないと
0378名無しさん@お腹いっぱい。2010/03/08(月) 11:30:29
ehgの画像URLだけど、
あの41桁のSHA-1らしき何かは逆算できるものなの?
とりあえずURLに画像の大きさと幅と高さが埋め込まれていることしかわからない
0379名無しさん@お腹いっぱい。2010/03/08(月) 12:04:04
イーヘンタイ潰れてるやんw
0380名無しさん@お腹いっぱい。2010/03/08(月) 12:19:55
>>378
>あの41桁のSHA-1らしき何かは逆算できるものなの?
逆算してどうするの?
正規表現で取出すだけじゃない

プロクシで、ダウンテスト中だが今のところ落とせている。
0381名無しさん@お腹いっぱい。2010/03/08(月) 19:27:41
はやくツール改修してうpしてよ
0382名無しさん@お腹いっぱい。2010/03/08(月) 20:52:29
棚に上げて人の志向に文句は言わないけど
あんたのHentai間口は俺よりかなりデカイ>>377
0383名無しさん@お腹いっぱい。2010/03/08(月) 21:32:16
>>381
まぁ今週金曜の様子を見てからにしなよ。
guestは総Flash化されるかもな。
0384名無しさん@お腹いっぱい。2010/03/08(月) 23:13:32
静止画見る程度でflash化とか
やりかねん
と言う事でまかせたぞ>383
■ このスレッドは過去ログ倉庫に格納されています