50
52

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

絶対に画像をダウンロード&スクレイピングさせないWebページを突破してみる

Last updated at Posted at 2023-05-28

ちょっと面白そうだったので絶対に画像をダウンロード&スクレイピングさせないWebページを本気で作ってみたを突破してみようと思う。

方法

方法としては下記の3つくらいが簡単そうだけど、いちばん簡単な1つ目でやってみます。

  1. HTML,JS,JSONをDLしてHTML書き換え、ダウンローダとして使う
  2. Chrome Extensionを書く
  3. Puppeteerなどを使う

とりあえず、仕組みは書かれているので下記でcanvasのtextを無効化 + DL用のボタンを追加します。

    <button id="dl">Download</button>
    <script>
        const canvas = document.getElementById('canvas');
        const ctx = canvas.getContext('2d');
        // ctxのfillTextをなにもしない関数に置き換える
        ctx.__proto__.fillText = () => { };
        // png画像として保存するためのボタンのアクション
        document.getElementById('dl').addEventListener('click', () => {
            const a = document.createElement('a');
            a.href = canvas.toDataURL();
            a.download = 'image.png';
            a.click();
        });
    </script>

あとは画面を表示します。そうするとこれが
before.png

こうなる
after.png

あとはDownloadボタンを押せばめでたくコピーライト抜きのpngがDLできます。

まとめ

HTMLに表示しているデータを守るのはかなり厳しいのではないかと思います。
ただ、今回の例だと画像に直接コピーライト書いちゃえば良さそうではある。

50
52
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
50
52

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?