連番のH画像/動画を一気にダウンロードする2at UNIX
連番のH画像/動画を一気にダウンロードする2 - 暇つぶし2ch281:名無しさん@お腹いっぱい。
10/02/19 18:19:24
対策っていうか, 多分画像が貼ってあるページの構造が変わって,
scrapeimgname() と 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 ]}" とかしといた方がいい.

282:名無しさん@お腹いっぱい。
10/02/19 18:51:06
bandwidthがperlだとブラウザより高いのけ?

QoSでperlへの帯域絞るしか無い?

283:名無しさん@お腹いっぱい。
10/02/19 22:35:10
img id.*でマッチングするようにscrapeimgnameとscrapeimgurlを書き換えたら動いたよ。
オリジナルは画像鯖のドメインでマッチングしてたんだけど、ドメインが変わったからマッチしなくなったんだね。

>>282
オリジナルだと4秒ぐらいで取りに行っちゃうから、間隔を10秒以上とるようにsleepを書き換えるとけっこう快適になるよ。

284:名無しさん@お腹いっぱい。
10/02/19 23:06:49
>>283
サブルーチンを書き換えればいいのかな

285:名無しさん@お腹いっぱい。
10/02/19 23:17:33
$t=(rnd($base1000))+10

とか?

286:名無しさん@お腹いっぱい。
10/02/19 23:19:13
>>284
そうそう。waitpとかいう名前だったはず。

287:名無しさん@お腹いっぱい。
10/02/19 23:21:06
私も、img idでマッチする様に書換えて、動きました。
書出すファイル名は、altタグから引っぱればいいかな。

288:名無しさん@お腹いっぱい。
10/02/19 23:23:28
>>283
便乗して悪いけど
img id.* ってのはscrape~の
if ( m|src="URLリンク(r.e-hentai.org)"| )
の部分のことでいいのかしら


289:名無しさん@お腹いっぱい。
10/02/19 23:25:00
$t=(rnd($base1000))+10

とか?

290:名無しさん@お腹いっぱい。
10/02/19 23:26:00
うあ
base/1000の間違い
すまぬ

291:名無しさん@お腹いっぱい。
10/02/20 01:13:58
perlの記述がよく分からないんだけども 正規表現とかimgタグとかは他の言語とかと一緒なのかな

292:157
10/02/20 01:54:50
URLとイメージ名のスクレイパの正規表現の手直しと
waitpの時間延長を施した新ヴァージョンができました

URLリンク(www1.axfc.net)


293:名無しさん@お腹いっぱい。
10/02/20 11:01:04
157さんサンクス!
ちゃんと動いてます。

294:名無しさん@お腹いっぱい。
10/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', 'URLリンク(127.0.0.1:80)');

295:157
10/02/20 21:05:59
上のバージョンで>>281氏のstatus_lineのデバッグ入れるの忘れてました
すいません


296:名無しさん@お腹いっぱい。
10/02/21 13:12:16
今スクリプトのデバッグ中にふと思いついたしょーもない
むしろ '常識知らねーな' と言われそうな変更を試してる。

これで4ページ/分のペースで14冊330ページ99MBまで落としたが
一向に帯域制限がやって来ない。昨夜は引っ掛かりまくりだったし
今まで3日の間を空けたってこんなこと無かったんだがな。
サーバのプログラムが変わったばかりらしいがバグを突けたのか?
それとも今日は感謝デーなのか?

297:名無しさん@お腹いっぱい。
10/02/21 13:21:48
>>296
変更前と後のスクリプトで試してみて
両方とも帯域制限が来ないなら
今日は感謝デー

後の変更済みスクリプトだけに帯域制限がこないなら
その変更は大当たり


298:名無しさん@お腹いっぱい。
10/02/21 13:35:43
>>297
おぉ、そりゃそうだ。舞い上がって変化点検証の基本を忘れてた。やってみる。

299:名無しさん@お腹いっぱい。
10/02/21 14:56:32
すまん。サービス期間中だったようだ。
変更前のコードでも222ページ75MBまでスルスル落とせた後に 509 がやってきた。
その直後に変更後のコードを掛けてみたがやっぱり 509 だった。
多分週末メンテナンスで俺のカウンタがリセットしたとかなんだろうな。

クッキーなくなってるね。リダイレクトもなし。img id=xxx は相変わらず付いてるけど
肝心の id の値はHTML本文中に見つからない。

300:名無しさん@お腹いっぱい。
10/02/21 16:34:57
157さんのツールで、DLするページによってサムネイルページで400エラーを吐くのは何故でしょうか?

301:名無しさん@お腹いっぱい。
10/02/21 20:17:10
>>300
オレもそういうページあるけど多分複数ページじゃなくて単独ページの場所だと
動かないっぽい。
ベースページを解析するルーチンで1ページしかないページだと構文解析できずに
終わってるっぽいな。

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

ついでだけど500枚くらいのやつだとエラー途中までしかDLしないのは仕様?


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch