今日映画を見つけ、私はそれをダウンロードしたかったです。
まず、分析するためのネットワークツールをオープンしました:
予備的分析は、そう簡単に早送りロードするために、これはM3U8インデックス記録百セグメントTSファイルであることを示唆し、それはTS形式をロードするためにビデオファイルを引き上げるました。
しかし、実際の解析M3U8ファイルと、これは有効なインデックスファイルではないことがわかった、あなただけの別の場所で、フォーム、実際のハンドラをロードする必要があります。
しかし、この分析は、あまりにも多くの問題をJS。いくつかの試みを通じて、法律を発見:ビデオファイル名はy8TL59oh4680xxx.tsで構成され、xxxはそんなに簡単にシリアル番号、です!
変更された爬虫類を登る前に、音楽ファイル、このようなプログラムを取得します:
インポート要求は インポートのOS インポート再 から TkinterのインポートのTkを から tkinter.simpledialogのインポートaskinteger、askfloat、askstring から tkinter.filedialogのインポートaskopenfilename、askopenfilenames、asksaveasfilename、askdirectory から tkinter.messageboxのインポートSHOWINFO、showwarning、showerror DEF downloadSong(SongIDファイル名): ヘッダー = { 「ユーザエージェント」:"Mozilla / 5.0(のWindows NT 6.1; WOW64)のAppleWebKit / 537.36(ヤモリ様KHTML)クローム/ 39.0.2171.71サファリ/ 537.36 " } R = requests.get(" https://www.mmicloud.com/20190406/I1RrJf8s/ 2000キロバイト/ HLS / y8TL59oh " + STR(SongID)+ " .TS "ヘッダ= ヘッダ); #の印刷("状態") #1 プリント(R) ファイルパス= os.path.join(STR(SongID)+ " 。 TS " ) 、オープン(ファイルパス、と" WB 」:ファイルとして) file.write(r.content) プリント(SongID) 用 I でレンジ(4680000、4680900 ): downloadSong(I、STR(I))
900個のビデオファイルのy8TL59oh4680899.tsにy8TL59oh4680000.tsからファイル名をクロールプログラムループ。
4680900における最大のサイクルプログラムの集合ではなく、ダウンロードは次オーバーであればより多くの、いくつかをダウンロードするので、私は、以上の860枚のフィルムセグメントを発見したために、アイデアは間違っている理由は、問題ではありません。
彼は走り始めたので、それは良い仕事、スムーズにダウンロードファイルを探します。
私は手で物を置くので、最初の休息します。約半分の時間後、彼は300個の以上のファイルをダウンロードされています。
私はVSCodeでいくつかのコードを書いたので、爬虫類は、問題はないはず、落ち着くでしょう。私はもう一度、タスクバーを見たとき、爬虫類は消失していました!
彼らは同じ問題を抱えているだろうしながら、私は後に、再びクロールを開始しました!変数i溢れていますか?私の範囲を狭めるためにしようとし、それをデバッグしてみてください。
インポート要求は インポートのOS インポート再 から TkinterのインポートのTkを から tkinter.simpledialogのインポートaskinteger、askfloat、askstring から tkinter.filedialogのインポートaskopenfilename、askopenfilenames、asksaveasfilename、askdirectory から tkinter.messageboxのインポートSHOWINFO、showwarning、showerror DEF downloadSong(SongIDファイル名): ヘッダー = { 「ユーザエージェント」:"Mozilla / 5.0(のWindows NT 6.1; WOW64)のAppleWebKit / 537.36(ヤモリ様KHTML)クローム/ 39.0.2171.71サファリ/ 537.36 " } R = requests.get(" https://www.mmicloud.com/20190406/I1RrJf8s/ 2000キロバイト/ HLS / y8TL59oh4680 " + STR(SongID)+ " .TS "ヘッダ= ヘッダ); #の印刷("状態") #1 プリント(R) ファイルパス= os.path.join(STR(SongID)+ " 。 TS " ) 、オープン(ファイルパス、と" WB 」:ファイルとして) file.write(r.content) プリント(SongID) 用 I で範囲(566、900 ): downloadSong(I、STR(I))
デバッグの後、私はプログラムは問題になりませんことがわかったが、コンソールウィンドウが最小化されているので、爬虫類は、プログラムが終了、その結果、メモリ不足回復されます。
Shetenglebantian!
私はその後、出すことはリサイクルすることは容易ではない、実行モジュール、通常のウィンドウが来るIDLEエディタに置き換え:
しばらくして、爬虫類は最終的にファイルを登りました。フォルダを見てみると、ゴーン間違っています
ファイル名矛盾!
私たちは私断片的な、まだ変数のスコープをデバッグする前に、時間を覚えていますか?だからこそ!
まあ、、、そのファイルは自動的に(1)と命名されるように命名権、名前の変更、(2)、(3)、(4)、(5すべての長いファイル名を確認します)、...この方法。
問題。。解決しようか?
私は、これらの名前のかかった(1)、(2)、(3)、(4)、(5)、...トランスコード、ドキュメント、組み合わせ、時間かけてあちこちに全部とまで。合併後は、唯一見つけるために、
混沌の完全なファイルのため!!!
Windowsののああああああああああああああああああああああ独立記念日!!!!!!!!!!
まさか、空気がそこから抜け出すことはできませんが、書き込みのコードを継続します。。。
幸い、私はその後、バッチのリネーム・プログラムを書くためのpythonを使用し、オフに名前を変更するフォルダはありません。
輸入OSの PROJECT_DIR_PATH = os.path.dirname(os.path.abspath(os.path.abspath(__FILE__ ))) DIR_PATH = os.path.join(PROJECT_DIR_PATH、' データ' ) のファイル = os.listdir(DIR_PATH) のためのファイル名中:ファイル 名、サフィックス = os.path.splitext(ファイル名) NEW_NAME = os.path.join(DIR_PATH、名前[4:7 ]) OLD_NAME = os.path.join(DIR_PATH、ファイル名) os.rename(OLD_NAME、新しい名前)
このディレクトリにファイルを、あなたは、上記の手順を使用することができます。
活発な実行プログラムは、命名が成功したが、拡張子がないことがわかりました。。。
間違いミスを!修復プログラムを書きます:
輸入OSの PROJECT_DIR_PATH = os.path.dirname(os.path.abspath(os.path.abspath(__FILE__ ))) DIR_PATH = os.path.join(PROJECT_DIR_PATH、' データ' ) のファイル = os.listdir(DIR_PATH) のためのファイル名中:ファイル 名、サフィックス = os.path.splitext(ファイル名) NEW_NAME = os.path.join(DIR_PATH、ファイル名+ " .TS " ) OLD_NAME = os.path.join(DIR_PATH、ファイル名) os.rename(OLD_NAME、新しい名前)
実行を怖がって、最終的には通常のカタログ:
その後、再び、合併、だけでなく、複数の時間をトランスコード。最後に、最終的に我々は勝利の成果を得ました:
あまりにもハード!
この映画をダウンロードして丸一日かかりました。午前と午後のリソースをクロール書き込みコード+書き込み+爬虫類の午後のための情報源を見つけるために、夜は私が十分に6-7ミドルピースの映画だと思う問題を、名前を変更し、転送コードを心配しなければなりませんでした。ε=( 'ο `*)))ああ。。。
言っても過言ではない、フィルムは明日読むことができます。皆さん、おやすみなさい!