このツールを自由にダウンロードして、個人的な目的で使用することができます。このプログラムを変更して共有したい場合は、フォークを作成してください。ここに示すように、元のリポジトリへのリンクを上部に含める必要があります: 元のリポジトリ: [リンク]
高度なプログラムを使用すると、その動作をさらに制御し、その構成を編集できます。ほとんどのユーザーにとっては、標準のもので十分です。アドバンスト プログラムのバージョンは、このリポジトリの「advanced_version」ディレクトリ内にあります。
私はPythonを学習し、バッチカードダウンロードのバックアップ手段として使用するためにこのアプリケーションを作成しています。私は JS で書いた独自のブラウザ アドオンを持っていますが、それは問題なく動作しますが、壊れたアドオンが動作しなくなった場合に備えて、この解決策に取り組んでいます。また、そのアドオンのソース コードは公開しません。なぜなら、このアドオンは私のために作られたものだからです。少し壊れていますが、直す気にならない程度です。そうしてこのプロジェクトが始まります。計画では、Selenium を使用して、現在のブラウザー アドオンよりもさらに多くの機能を実行することです。アドオンは、ダウンロード ボタンを順番にクリックし、ダウンロードが完了するまでハードコーディングされた時間待機し (サイトがそれを好まないため、複数のダウンロードを防ぐため)、次に [次へ] ボタンをクリックして次のページに移動することを繰り返すことで機能しました。 。次に、ユーザーが構成ファイルを作成してダウンロードプロセスをさらに自動化できる別のソリューションを作成したいと考えています。それが私をどこへ連れて行くか見てみましょう。
その目的で JS 拡張機能を作成するのは超高速で、それほど複雑ではないことはすでにわかっていますが、どちらのソリューションにも長所と短所があることは間違いありません。 (おそらく後ほど列挙します)
ソフトウェアは開発中であるため、内部の仕組みをよりよく理解するために .py ファイル内のコード コメントを読むことをお勧めします。
プログラムは db.bepis.moe 用に作成されています - したがって、いくつかのフィールドに入力できる値が不明な場合は、Web サイトにアクセスして、ゲームを選択してください。選択できる内容や検索フォームに入力できる内容を確認する
ゲームの種類を選択してください
ダウンロード タイプを選択します -> 「基本」では、「名前」および/または「タグ」のみを入力して検索できます -> 「詳細」 - 選択したゲームで利用可能なすべての検索パラメータを設定できます (作業中です)
各プロンプトフィールドに値を入力するか、「Enter」をクリックしてデフォルト値を取得します。
ダウンロードが完了するまで待ちます。
選択したゲームのページがロードされ、セレンによってフォームが埋められます。
検索ボタンをクリックした後、プログラムは Web サイトが読み込まれるまで 5 秒待ちます。
Web サイトは複数のダウンロードを好まないため、複数のダウンロードを防ぐために 5 秒ごとにカードをダウンロードします。 (一部のカードは 25MB を超える場合があるため、時間を短くするよりも時間を長くしたほうがよいでしょう) //将来的には、次のカードに進む前にカードのダウンロードが完了したかどうかを確認する機能を作成する可能性があります。
ページに含まれるカードが 24 枚未満の場合、それは最後のページ (または 1 枚のみ) -> ダウンロードが完了しました
ページに 24 枚のカードがあるが、「次へ」ボタンが無効になっている場合 -> ダウンロードが完了しました
ボタンがアクティブな場合、ページ上のカードが 24 枚未満になるか、「次へ」ボタンが無効になるまで、URL を変更してページを読み込み、カードのダウンロードを開始します。
一部のカードの重量は 25 MB を超える場合もあります。インターネットが遅い場合は、カードのダウンロード間の待ち時間を 20 秒に変更してください。
コード内の対応する SLEEP 関数には、# で囲まれたコメントがあります。以下に示すように:
###################################### #BELOW TIME FOR CARD TO BE DOWNLOADED# ######################################
+既知の問題は -> PyCharm から、場合によっては他の形式でプログラムを実行すると、malwarebytes によってプログラムが強制終了されてしまいます。無効にして再度使用してみてください。 // Python スクリプトを強制終了するのが好きです。
プログラムがすべてのカードをダウンロードしたことを確認するには、次の式を使用できます: ((ページ数) - 1) * 24 + (最後のページのカードの数)
7 ページの場合、最後に 4 枚のカードが含まれる場合、次のようになります: 6*24+4 = 148 枚のカード
あまり上級でないユーザーの場合: 「ライブ コンテンツ」のダウンロードにはこのスクリプトを使用しないでください -> 誰かがサイトに新しいカードをアップロードし、それがダウンロードの条件に該当する場合、スクリプトはカードをダウンロードしません。その場合、カードの順序が変更され、非常にアクティブな検索や重複ダウンロードで一部のカードが省略される可能性があります。 Web サイトに 30 枚のカードがあると想像してください。1 ページには 24 枚のカードがあり、2 ページ目には 6 枚のカードがあります。ダウンロードを開始すると、最初の数秒で誰かがさらに 3 枚のカードをアップロードします。このページは 24 枚のカードを処理できるため、最後の 3 枚のカードがページ 2 に移動され、そこに 9 枚のカードが配置されます。しかし、スクリプトはそれを知りません - ブラウザにはその前にページが読み込まれています。カードが移動されていないバージョンの Web サイトがあります。スクリプトはページを次のページ (2 ページ) に変更します。すでに持っているカード 3 枚を含む 9 枚のカードをダウンロードします。