連番のH画像/動画を一気にダウンロードする7.5 [無断転載禁止]©2ch.net
DLsiteなどはツールで抜けるらしい BOOTH通販やファンティア[Fantia]だとpdf+zip形式で買える GWもロスタイム。自分の能力ではデコードの糸口も見出せそうにないのでPASHは断念した。 今回Web漫画サイトを回って知ったのは、この手の行為に対して意外と大手漫画出版社のガードが チープな事。ほぼノーガードですって場合も多い。「ウチの本業じゃない所にコストを掛けるより この程度の解像度でよきゃ欲しい奴は持ってけ」方式なのか。 手間と言えるものを掛けたのはチマチマとブラウザのデバッグツールでJavascriptを追ったbinb系と 力技でスクランブルパターンの計算方を探した(簡単な方の)publus系。 後は思い出した時にでも海外掲示板でそのスジのツワモノ達の解析談義を検索するよ。 久々の連番スレはもう廃墟かと思いきや生存者が居てなにより。それでは良い終末を! csvファイルにURLが記録されている画像をダウンロードするには、何か良い方法はありますか? 1行の構成は次のような感じです url1, url2, url3 ... 最大でurl10まで これが複数行あります あっと、wgetのhelpの中にありました(見落としてた) wget --input-file=hoge.csv ですね いや、wgetだと1ファイル/1行しかダメですね カンマあるいはスペース区切りで複数URLが1行にあると、ダウンロードできない csvファイルを列ごとに別ファイルにするのは最終手段にしたいので、 何か良い方法は無いでしょうか? csvファイルのカンマ区切りを、スペースに置換して保存しても、 wget -i hoge.csv を実行するとスペースが%20でwgetに渡され、1つの繋がったURLと見なされてForbiddenになってしまう そこはスペースではなく改行。 tr ',' '\012' | wget -i - みたいな感じか。 おお、trなんてコマンドがあるのですね cat hoge.csv | tr ',' '\012' | wget --input-file=- で出来ました ありがとうございます テクマクマヤコン、テクマクマヤコンと唱えて服を脱ぎます 久しぶりの書き込みが、と思ったらなんのこっちゃ。 canvasは本体ドキュメントの場所と異なるドメインから持ってきたコンテンツを描画すると「穢れ」る訳で、 そうやって汚染されたcanvasからはデータを抜けなくなるよね。 まぁユーザーの手操作で「名前を付けてファイルに保存」する事は出来るんだけど 解決策の一つは代理Webサーバをローカルに立てて異なるドメインとのやり取りを仲介させ、 その際に自前のスクリプトを注入してドキュメント内のリンクを書き換えてしまうことで ブラウザには同じドメインのコンテンツの様に見せかけて穢れは無いと誤解させること。 この仕組みを作っておけば、この板の趣旨的には結構便利。 もう一つ、二次元画像ならクロスドメインに厳しいブラウザなど使わずに自前で直に編集出力すること。 各種web漫画サイトなら自分はnode+sharpでふじこlp H画像じゃないけど誰かComicWalkerのAPI知らね? ニコ静のofficials系とcontents/<ID>/episodes系 サーバ共用してるComicWalkerとニコ静は画像取得表示部分は共通化できるんだけど 全部APIからJSON読んで完結できるニコ静に対して HTML本文GETしてString.match()して〜の工程が頭悪そうで何とかしたいの だって見るモノ無いとは言え同じ元ネタならスマートに共通化したいじゃん! 把握して使ってるのは今これだけ /comicwalker-api.nicomanga.jp/api/v1/comicwalker/contents/<contentID> /comicwalker-api.nicomanga.jp/api/v1/comicwalker/episodes/<episodeID> /comicwalker-api.nicomanga.jp/api/v1/comicwalker/episodes/<episodeID>/frames /comic-walker.com/v1/endbook?episode_id=<episodeID> で、ニコ静の次の機能に相当するAPIを知りたいの /api.nicomanga.jp/api/v1/app/manga/officials[/<deptID|directory>] /api.nicomanga.jp/api/v1/app/manga/officials/<deptID>/contents[?offset=<from>&limit=<count>] /api.nicomanga.jp/api/v1/app/manga/contents/<contentID>/episodes 知ってたら教えて♪ 知らなかったらおとといレスくれるとチョー嬉しいんだけど♡ Node.js とwork_crawlerで落とせたけど cd /work_crawler-master/comic.ja-JP/ && node ComicWalker "とある科学の心理掌握" nico_seiga.js ComicWalker.js この人みたいに素直に2つ作れよw いや自分のもnodejsで画像処理部以外は別々のプラグインで作ってそれはそれで機能してるのよ でもコードが美しくないし、それにCWって再配信モノとかでごちゃごちゃして見にくいじゃん それもあってニコ静しか見てなかったんだけど最近CWの方が更新日の早いヤツがあるって 気付いて、この際自分のコードを素敵にメンテしたいなって思ったのよ あ、書いてて気が付いたけど閲覧したり落としたりする処理は綺麗なもんで不満はなく そこに至るまでの更新作品とか公開話一覧とかをブラウズする用途のAPIの話ね work_crawlerはelectronのguiでjson検索を作ってるみたい とある科学の心理掌握 ComicWalker last_update 2022/10/05 第12話後編 建設的レス感謝 Gitでソースを見たけど残念ながら指定されたepisodeIDでframesを取るAPIしか使ってなかった むしろCW的にAPIサーバのssl.seiga.nicovideo.jpは旧仕様なのでその内無くなっちゃうかも 自分のはEx含めて画像を連番で落とすだけのダウンローダーじゃなくて ブラウザ経由で選択や閲覧できるようにするCORS回避プロキシっぽい機能を持ってるんですよ そこに清濁混合で各サイト用に作ったプラグイン群が動的に刺さる感じ サイトを直接表示しないんであの手この手のエロ動画とかポップアップは出ないし 公式サイトでも無用な広告画像や埋め込みツイートとか読まないので通信もエコ(自分回線細いんで) 特にアカウント持ってないニコ静は公式ページからじゃ閲覧できないのでこれ頼み 俺は自作でもdownload.txtを作って差分を取るぐらいしかやらないから 話が噛み合わないな DATA : exhentai.org/g/2328720/23baa0b43e/ DATA : [虫無心] 奴隶-ボア・ハンコック (ワンピース) 20 DATA : END DATA : exhentai.org/g/2328691/61dd1d0061/ DATA : ちえりさんは負けられない!3 -夫公認で誰の精子でも受精する変態便器 69 DATA : END 公式系漫画板の連中は「アレおもしれえコレ嫌い」しか頭にないし 不法系漫画板は「死んだ生き返った更新マダー」しか関心なさげなんで 久しぶりにここを思い出しスレチ承知で聞いてみた 連番スレとスレの皆々様には益々の御健勝と御多幸御活躍をお祈り申し上げる 今日はシュワルツ変換を覚えました^^ my @tmp; for(@fields){push @tmp, [$_, $_->[9]];} @tmp = sort {$a->[1] <=> $b->[1]} @tmp; my @fields2; for(@tmp){push @fields2, $_->[0];} # シュワルツ変換 my @fields3 = map $_->[0], sort { $a->[1] <=> $b->[1] } map [ $_, $_->[9] ], @fields; 今日はYAML::Dumperを覚えました^^ use v5.34; use utf8; use Encode qw/encode decode/; sub de { decode("shiftjis", shift) } sub en { encode("shiftjis", shift) } sub de8 { decode("utf8", shift) } sub en8 { encode("utf8", shift) } use open IO => qw/:utf8 :std/; use JSON; use YAML::Dumper; my $yaml = YAML::Dumper->new(); $yaml->indent_width(4); use WWW::Mechanize; my $mech = WWW::Mechanize->new(); $mech->agent_alias('Windows Mozilla'); $mech->get(${url}); my $content = de8($mech->content); my $json1 = from_json($content); my $json_text = to_json( $json1 ); my @arr = split(/,/, $json_text, -1); print $yaml->dump( \$json1 ); ∩ _( ⌒) ∩__ //,. ノ ̄\ / .)E) /i"/ /|_|i_トil_| / / / ̄ ̄ ̄ ̄ ̄ |ii.l/ /┃ ┃{. / / < あけおめ |i|i_/''' ヮ''丿i_/ \_____ i|/ ,ク ム"/ / |( ヽ _,.-===、j、 ゞヽ‐イ/´ ヽ ヽ、 \! ::c:: ! :p }ヽ __ ノ、_ノ / ノ ノ´ 今日はif文のかわりにハッシュを使うを覚えました^^ sub image_format_check { use Image::ExifTool qw(:Public); my $checkfile = shift; my $info = ImageInfo($checkfile); my $FileName = $info->{'FileName'}; my $FileType = $info->{'FileType'}; #my $MIME = $info->{'MIMEType'}; my $Date = $info->{'DateTimeOriginal'}; my $error = $info->{'Error'}; my %handler1 = ( "JPEG" => "jpg", "WEBP" => "webp", "PNG" => "png", "BMP" => "bmp", "GIF" => "gif", "ZIP" => "zip", ); #----- 画像の種類の判定 ここから my $checkdata = $handler1{"$FileType"} // "bin"; $checkdata eq "bin" and $error = ":error bin"; $FileType =~ /TXT/ and $error = ":error txt"; return ($checkdata, $error, $FileName); } ( ´ー`)y-ด็็็็็้้้้้็็็็้้้้้็็็็็้้้้้็็็็็้้้้้็็็็ スゥーッ(´┏・┓`)v-~~ハァーッ(´┏∀┓`)v-~~ スゥーッ(´┏・┓`)v-~~ハァーッ(´┏∀┓`)v-~~ exの自作スクリプトpython2のurllib2を利用していたんだけど 今日動かしたら403エラーになった wgetだと同じクッキーで通ったから、元のurllib2利用コードの opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar())) opener.addheaders.append(('Cookie', cookie)) html = opener.open(url).read() を html = subprocess.check_output( 'wget -O - --no-cookies -U "%s" --header "Cookie: %s" "%s"' % (useragent, cookie, url), shell=True) のようにwgetを使うようにしたらうまくいけた 全部wget丸投げがいいのかな my $cmd = qq{ curl -Ss --user-agent "Wget" -H 'Cookie: ' --connect-timeout 40 --insecure -o "$filename" -L -G "$href" --referer "https://" ; }; $ret = op5( $cmd ); 俺はperlを使っていてファイルを落とすときはcurlに投げている $wq->find('#i7.if') ->each(sub { $href = $_->find('a')->attr('href') // "non"; print $href . "\n" ; }); htmlの読み込みなら、これでエラーになったことはないかな $Web::Query::UserAgent = LWP::UserAgent->new( agent => 'Mozilla/5.0' ); $Web::Query::UserAgent->cookie_jar($cookie_jar); $Web::Query::UserAgent->timeout(20); my $wq = Web::Query->new($url); よく見たらpython2かよw def subprocess_1 (cmdline, array): p = subprocess.Popen(cmdline, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT ) while True: line = p.stdout.readline() if not line: break line = line.decode('utf-8') line = line.rstrip() # ~ print (line) array.append(line) ret = p.wait() return ret ## main f_path = "この素晴らしい世界に祝福を!.mp4" file_name2 = re.escape(file_name) cmdline = 'ffprobe ' + file_name2 + ' -hide_banner -pretty' a = [] ret = subprocess_1(cmdline, a) print ("Return code: %d" % ret) print ("\n" + a[1] + "\n") use v5.34; use utf8; use Encode qw/encode decode/; sub de { decode("shiftjis", shift) } sub en { encode("shiftjis", shift) } sub de8 { decode("utf8", shift) } sub en8 { encode("utf8", shift) } use open IO => qw/:utf8 :std/; use JSON; use YAML::Dumper; my $yaml = YAML::Dumper->new(); $yaml->indent_width(4); use WWW::Mechanize; my $mech = WWW::Mechanize->new(); $mech->agent_alias('Windows Mozilla'); $mech->get(${url}); my $content = de8($mech->content); my $json1 = from_json($content); my $json_text = to_json( $json1 ); my @arr = split(/,/, $json_text, -1); print $yaml->dump( \$json1 ); How many files(0-15)? 10 FOR I=1 TO 100 20 PRINT "NULLPO" 30 NEXT I How many files(0-15)? 10 FOR I=1 TO 100 20 PRINT "GAXTU" 30 NEXT I javascript:var fn_id = "「ipb_member_idの値」"; fn_pass= "「ipb_pass_hashの値」"; document.cookie = "ipb_member_id=" + fn_id + ";expires=" + new Date(2030, 11, 31).toUTCString(); document.cookie = "ipb_pass_hash=" + fn_pass + ";expires=" + new Date(2030, 11, 31).toUTCString(); document.cookie = "yay=louder;expires=" + new Date(1990, 0, 1).toUTCString(); alert("現在のcookie:\n" + document.cookie); 001FC8EC 29→01 001FD264 29→01 001FD2D1 0F859D000000→909090909090 001FD338 95→94 スゥーッ(´┏・┓`)v-~~ハァーッ(´┏∀┓`)v-~~ ┓ ┓ ┓ 〆⌒ヽ 〆⌒ヽ 〆⌒ヽ -=≡ リ ‘д‘ル リ ‘д‘ル リ ‘д‘ル  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ λλ ,,,, / ゚Д゚ )なめなめくじくじなめくじくじ  ̄ ̄ ̄ curl -O http://ero.com/ero [001-100].jpg 終了 広告スレと間違えてアホな書き込みをしてしまいました。 首吊ってきます ヽ(д`ヽ)。。オロオロッ。。(ノ´д)ノ オロオロ… ( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \ > 彼らはよく、社会に貢献したいと口にする。 > なんでも社会悪のネトウヨを自殺に追い込むことが、社会に貢献することなんだそうで。 > イジメや嫌がらせで社会に貢献できる教師や警官になるために、あえて帰化したんであって、祖国同胞を裏切ったわけではなく、心は●●人なんだそうだ。 > > 昔は帰化すると裏切り者と呼ばれたりしたが、祖国に国籍を残したまま帰化する方法が確立された現在では、社会に貢献するためにむしろ帰化することが推奨されている。 > 拳銃所持で前科のある生粋の反日家ですら、今では普通に帰化している。 > > ●●学会などはネトウヨ認定した日本人を盗撮して、痴漢の写真だと言ってばらまいている。 > それらの写真は、集団ストーカーに使用される。 > 彼らは集団ストーカーを、[地域で子供を守る安心安全パトロール]と称している。 ( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \ (^-^)y- (^o^)y-。o0○ ( ;゜゜)ノ⌒-~ ←……( ̄ー|柱| ポイステキンシ 三( ^o^)三( ^o^)三( ^o^)デケデケデケ ( ´ー`)y-ด็็็็็้้้้้็็็็้้้้้็็็็็้้้้้็็็็็้้้้้็็็็ (T|T)(i|i)(k|k)(t|t)(o|o)(k|k)(\s| )(L|L)(i|i)(t|t)(e|e) 三( ^o^)三( ^o^)三( ^o^)デケデケデケ キタワァ*・゜゚・*:.。..。.:*・゜(n’∀’)n゚・*:.。. .。.:*・゜゚・*!!!!! ◢█◣ █ █ ██◣ ███ ██◣ █ █ █ █ █ █ █ █ ◥█◣ █ █ ██◤ ██ ██◤ █ █ █ █ █ █ ◣ ◥█◤ ◥█◤ █ ███ █ █ █ ████◥◣ ███ █ ◢◤ ◢◤ █ ◢◤ ◢◤ ███ ゙'. '.;`i i、 ノ .、″ ゙'. ,ト `i、 `i、 .、″ | .,.:/"" ゙‐,. ` / ` .,-''ヽ"` ヽ,,,、 ! 、,、‐'゙l‐、 .丿 : ':、 、/ヽヽ‐ヽ、;,,,,,,,,,-.ッ:''` .,"-、 ,r"ツぃ丶 `````` ../ `i、 ,.イ:、ヽ/ー`-、-ヽヽヽ、-´ .l゙`-、 _,,l゙-:ヽ,;、、 、、丶 ゙i、,,、 ,<_ l_ヽ冫`'`-、;,,,、、、、.............,,,,、.-`": │ `i、 、、::|、、、ヽ,、、. ```: : : ``` 、.、'` .|丶、 .l","ヽ、,"、,"'、ぃ、、,、、、、.、、、.、、、_、.,,.ヽ´ l゙ ゙).._ ,、':゙l:、、`:ヽ、`:、 : `"```¬――'''"`゙^` : ..、丶 .l゙ `ヽ ,i´.、ヽ".、".、"'ヽヽ;,:、........、 、、...,,,、-‘` 、‐ |゙゙:‐, ,.-l,i´.、".`ヽ,,,.".` `゙゙'"`'-ー"``"``r-ー`'": _.‐′ 丿 ,! j".、'ヽ,".、".、"`''`ー、._、、、 、._,、..-‐:'''′ .、,:" 丿 ゙l,"`"`''ヽヽ"`"` ```゙'''"ヽ∠、、、、ぃ-`''''": ` 、._./` ._/` `'i`ヽヽヽ`''ーi、、、: : 、.,-‐'` 、/` ``ヽン'`"` : `~``―ヽ::,,,,,,,,,,.....................,,,,.ー'``^ ,、‐'"` `"'゙―-、,,,,..、、 : ..,、ー'"'` : `‘"`―---------‐ヽ``"''''''"" ノ| ◢█◣ █ █ ██◣ ███ ██◣ █ █ █ █ █ █ █ █ ◥█◣ █ █ ██◤ ██ ██◤ █ █ █ █ █ █ ◣ ◥█◤ ◥█◤ █ ███ █ █ █ ████◥◣ █ ◢◤ ◢◤ ◢◤ ◢◤ ) ( ,, ) ) ゙ミ;;;;;,_ ( ミ;;;;;;;;、;:..,,.,,,,, i;i;i;i; '',',;^′..ヽ ゙ゞy、、;:..、) } .¨.、,_,,、_,,r_,ノ′ /;:;":;.:;";i; '',',;;;_~;;;′.ヽ ゙{y、、;:...:,:.:.、;:..:,:.:. ._ 、} ".¨ー=v ''‐ .:v、,,、_,r_,ノ′ /;i;i; '',',;;;_~⌒¨;;;;;;;;ヾ.ミ゙´゙^′..ヽ ゙{y、、;:...:,:.:.、;、;:.:,:.:. ._ .、) 、} ".¨ー=v ''‐ .:v、冫_._ .、,_,,、_,,r_,ノ′ /i;i; '',',;;;_~υ⌒¨;;;;;;;;ヾ.ミ゙´゙^′.ソ.ヽ ゙{y、、;:..ゞ.:,:.:.、;:.ミ.:,:.:. ._υ゚o,,'.、) 、} ヾ,,..;::;;;::,;,::;):;:;:; .:v、冫_._ .、,_,,、_,,r_,ノ′ ◢█◣ █ █ ██◣ ███ ██◣ █ █ █ █ █ █ █ █ ◥█◣ █ █ ██◤ ██ ██◤ █ █ █ █ █ █ ◥█◤ ◥█◤ █ ███ █ ( ´ー`)y-ด็็็็็้้้้้็็็็้้้้้็็็็็้้้้้็็็็็้้้้้็็็็ スゥーッ(´┏・┓`)v-~~ハァーッ(´┏∀┓`)v-~~ とにかく波風立てしてたら頭おかしい むしろまだ生きてんの? フェラはできると思うパターンになるなら元文にレスしてるよ良かったね〜で終わりになりやすい 燃えても運転とか大惨事に没頭してるぞ。 明日も下げてるのて https://nu3p.se5s.mp/zkAbXK ヽ(д`ヽ)。。オロオロッ。。(ノ´д)ノ オロオロ… Gmailでミスした。やっちまった。恥かいた。Googleのものは使わない方向で行かないと駄目だな。なんで手を抜いてたかな。何の為にlinux覚えたんだよ。最低限のサーバーは借りとけ。 やっぱ普通にscriptでfileにgrepなりかけられるような使い方じゃないとしょうもないミスするな。これは教訓にしよう。 目視で何度も確認したのに8回目ぐらいで確かにあるという現象に遭遇してしまった。まじボケてんのか。そしてこんだけ確認して気づかないとかまた絶対やるわ。同じミスじゃなくてもGoogleの変な仕様に同じように翻弄されるだろう。基本的によくUI見て考えてみれば誰から来てるのか分からないのが大きすぎる。メールの振り分けとか、後横にスライドすると削除されるとかそういうのとかあれもマジ糞。わけわかんね。 最後までくっそド素人な言い訳してしまった。しかも今考えたらその言い訳も間違ってるし泣きっ面に蜂。まじゴールデンウィーク中にごめんなさい。 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる