Nuxtで画像ダウンロードツール作ってみた
以前、↓の記事でCLIの画像ダウンロードツールを作ったのですが、不要な画像までダウンロードされてしまうのでGUI化し、選択してダウンロードできる様にしてみました。
今回作ったツール
https://teracy-img-downloader.herokuapp.com/
※HEROKUの無料プランを使っているため、表示されるまでに1分程度かかります
機能紹介
使い方は簡単です
- ダウンロードしたい画像のあるサイトのURLを入力し、検索します
- ダウンロードしたい画像を選択します(選択した画像は赤くなります)
- ダウンロードボタンを押してダウンロードします
※「いらすとや」さんのページを使わせていただいてますが、このツール使用時は対象のサイトがスクレイピングを禁止していないことを確認の上、使用してください
※Herokuの無料プランでサーバーを立てているため、サーバーがスリープしているとアクセス時に表示まで1〜2分程かかることがあります
技術的な話
各種バージョン
$ node -v
v12.16.3
Nuxtについて
-
npx create-nuxt-app
でNuxtプロジェクトを作成します。なお、設定は以下の通りです
- 言語:Typescript
- UI Component:ElementUI
- Module:Axios
- Linter:Prettier
- その他はデフォルトでEnter連打
$ node -v
v12.16.3
npx create-nuxt-app
でNuxtプロジェクトを作成します。なお、設定は以下の通りです
- 言語:Typescript
- UI Component:ElementUI
- Module:Axios
- Linter:Prettier
- その他はデフォルトでEnter連打
※nuxtバージョンは2.15.6でした
ポイント
scraperjsを使っているのですが、Node.jsのいろんなパッケージが必要でそのままだと動きません。
NuxtにはserverMiddlewareという機能を備えているため、これを使います。
この機能を使うと、APIを作成してサーバーサイドの処理を実装することができます。
これにより、通常Vue.jsでは使用できないNode.jsのパッケージ(fsやrequest等)も使うことができます。
最後に
SPAやAjaxで非同期でimgタグを埋め込む様なページには対応できていないため、スクレイピングをヘッドレスブラウザに切り替えてより対応範囲を広げて行けたら良いなと思います。
Author And Source
この問題について(Nuxtで画像ダウンロードツール作ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/teracy164/items/784a20e37bb0b8846435著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .