別のストリーミングサイトの実装を記録し、Pythonの爬虫類で、それのこつを登ります

今日映画を見つけ、私はそれをダウンロードしたかったです。

まず、分析するためのネットワークツールをオープンしました:

予備的分析は、そう簡単に早送りロードするために、これは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ミドルピースの映画だと思う問題を、名前を変更し、転送コードを心配しなければなりませんでした。ε=( 'ο `*)))ああ。

言っても過言ではない、フィルムは明日読むことができます。皆さん、おやすみなさい!

 

おすすめ

転載: www.cnblogs.com/lyj00912/p/12630122.html