2022-03-09に更新

ページがリニューアルされている。

ページがアップデートされていて、仕様が変更されている。
従来存在した、隠されたページ、といっても隠されているというより、googleによってサイト内検索があるだけで、ランダムにそのドメインの下にあるページを読み込むランダマイザーが無くなっている。

これまで、このランダマイザーを使って、存在するページを全て記録するという手法でコンテンツの数を数えていた。

代わりの手段として、wget を使ってみる。

wget -nv -r -l10 -e robots=off https://mangaplay.org/

これは、ドメイン内の html ファイルをクローリングしてダウンロードする。

コマンドのスイッチ l が階層の深さの指定のようなので、適当に10として様子をみよう。

html ファイルはダウンロードするが、そのドメイン外の画像ファイルはダウンロードしない。ドメイン外というのは、CDNのクラウドフレアによって隠されている画像の置いてあるサーバーについてのことで、そのサーバにマンガの画像がある。ここでは、その画像をダウンロードしない。
ダウンロードしたら、いけないぞ。

しばらく待つと、クローリングが終わるので、そのディレクトリに注目する。

ディレクトリの数字が、コンテンツのあるURLパスになっているので、そのディレクトリの数ぶんだけ、ディレクトリの中に index.html が存在して、その index.html のソースの中に、ページに読み込む画像ファイルの URL が書かれている。その URL が CDN のプロクシーサーバーにキャッシュされた画像ファイルを指し示しているというのが、はなしの前提になっている。

さてここで、デレクトリの名前を列挙して見たいところ。
こんなふうにしてみてはどうかな。

ls -l | awk '$1 ~ /d/ {print $9 }' > directory.txt

awk 参考:
https://atmarkit.itmedia.co.jp/ait/articles/1706/15/news021.html

64300 ほどあることが予想されるが、どうだろうか。なぜ予想されるかというと、その数を数えるプログラムを過去から現在までずっと いくつかの言語で書いてきたからで、ようやく Ruby でスレッドを使って速く数えれるプログラムが出来た(たくさんの http request する処理の待ちが時間かかるので、スレッドで分けれればかかる時間は go 言語での場合とたいさはなくなった)後に、前述の通りページの仕様が変わったので、数えてはあったが、新たな方法として、かなり先祖返りしたような wget でポンとやる方法をみつけたというわけだ。

64300 には程遠いということであれば、コマンドのスイッチ l の数字を大きくしてみるといいかもしれない。
l10 では 12798 こほどのディレクトリになった。

確認するには、directory.txt をエディターで開いて、行番号を付けてみればいい。

vim 系のエディターだと、: set number で行ナンバーの表示になる。

awk で行番号、ディレクトリ名というように表示させたければ、NR をつければよさそう。

ls -l | awk 'BEGIN { OFS=" => " } $1 ~ /d/ {print NR, $9 }'

ただし、ターミナルコマンドで見ると、あまりに多くの行数になると消えてしまうので、ちゃんと意味のあるディレクトリなのかを目視で確認できない。> を末尾につけて、ファイルに出力する方が確認にはよさそうである。

i hope for peace.
プーチンに死を


tomato
所有者限定モードのためこのボードには投稿できません
コメント