検索
ホームページバックエンド開発Python チュートリアルPython を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

最後に、リダイレクトされたファイルのダウンロード、大きなファイルのダウンロード、マルチスレッド ダウンロードの完了、その他の戦略など、遭遇する可能性のあるさまざまな課題を克服する方法を学びます。

1. リクエストの使用

リクエスト モジュールを使用して、URL からファイルをダウンロードできます。

次のコードを考えてみましょう:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

要求モジュールの get メソッドを使用して URL を取得し、その結果を「myfile」という変数に保存するだけです。真ん中。次に、この変数の内容をファイルに書き込みます。

2. wget の使用

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

#Python の wget モジュールを使用して、URL からファイルをダウンロードすることもできます。次のコマンドで pip を使用して wget モジュールをインストールできます。

次のコードを考えてみましょう。これは、Python のロゴ イメージをダウンロードするために使用します。

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

このコードでは、URL とパス (画像が保存される場所) が wget モジュールの download メソッドに渡されます。

3. リダイレクトされたファイルのダウンロード

このセクションでは、.pdf ファイルの URL で別の URL にリダイレクトされる URL からファイルをダウンロードするリクエストを使用する方法を学習します。 。 URL は次のようになります:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

この PDF ファイルをダウンロードするには、次のコードを使用します:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

この段落内コードでは、最初のステップとして URL を指定します。次に、リクエスト モジュールの get メソッドを使用して URL を取得します。 get メソッドで、allow_redirects を True に設定します。これにより、URL でのリダイレクトが許可され、リダイレクトされたコンテンツが変数 myfile に割り当てられます。

最後に、ファイルを開いて、取得したコンテンツを書き込みます。

4. 大きなファイルを分割してダウンロードする

次のコードを考えてみましょう:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

まず、リクエスト モジュールの get を次のように使用します。 beforeメソッドですが、今回はstreamプロパティをTrueに設定します。

次に、現在の作業ディレクトリに PythonBook.pdf という名前のファイルを作成し、書き込み用に開きます。

次に、毎回ダウンロードするチャンク サイズを指定します。これを 1024 バイトに設定し、各チャンクを反復処理して、チャンクの終わりまでそれらのチャンクをファイルに書き込みました。

これは美しいと思いませんか? 心配しないでください。後でダウンロード プロセスの進行状況バーが表示されます。

5. 複数のファイルをダウンロードする (並列/バッチ ダウンロード)

複数のファイルを同時にダウンロードするには、次のモジュールをインポートしてください:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

ファイルのダウンロードにかかる時間を確認するために、os および time モジュールをインポートしました。 ThreadPool モジュールを使用すると、プールを使用して複数のスレッドまたはプロセスを実行できます。

応答を分割してファイルに送信する簡単な関数を作成しましょう。

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

この URL は、パスとパスを指定する 2 次元配列です。ダウンロードするページのURL。

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

前のセクションで行ったのと同じように、この URL を request.get に渡します。最後に、ファイル (URL で指定されたパス) を開いて、ページのコンテンツを書き込みます。

これで、各 URL に対してこの関数を個別に呼び出すことも、すべての URL に対してこの関数を同時に呼び出すこともできます。タイマーに注目して、for ループ内で URL ごとにこの関数を個別に呼び出してみましょう:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

ここで、for ループを次のコード行に置き換えます。

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

スクリプトを実行します。

6. プログレス バーを使用したダウンロード

プログレス バーは、clint モジュールの UI コンポーネントです。次のコマンドを入力して clint モジュールをインストールします。

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

次のコードを考えてみましょう。

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

このコードでは、まず、requests モジュールがインポートされ、次に clint.textui から progress コンポーネントをインポートします。唯一の違いは for ループです。コンテンツをファイルに書き込むときは、プログレス バー モジュールの bar メソッドを使用します。

7. urllib を使用して Web ページをダウンロードする

このセクションでは、urllib を使用して Web ページをダウンロードします。

urllib ライブラリは Python の標準ライブラリであるため、インストールする必要はありません。

次のコード行で Web ページを簡単にダウンロードできます:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

ここで、ファイルの保存対象と保存先の URL を指定します。保管します。

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

このコードでは、urlretrieve メソッドを使用して、ファイルの URL とファイルを保存するパスを渡します。ファイル拡張子は .html になります。

8. プロキシ経由のダウンロード

プロキシを使用してファイルをダウンロードする必要がある場合は、urllib モジュールの ProxyHandler を使用できます。次のコードを見てください:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

このコードでは、プロキシ オブジェクトを作成し、urllib の build_opener メソッドを呼び出してプロキシ オブジェクトを渡してプロキシを開きます。次に、ページを取得するリクエストを作成します。

さらに、公式ドキュメントで説明されているように、request モジュールを使用することもできます:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

request モジュールをインポートしてプロキシを作成するだけです。物体。その後、ファイルを取得できます。

9. urllib3 の使用

urllib3 は、urllib モジュールの改良版です。 pip を使用してダウンロードしてインストールできます。

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

urllib3 を使用して Web ページを取得し、テキスト ファイルに保存します。

次のモジュールをインポートします:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

ファイルを処理するときは、shutil モジュールを使用します。

ここで、URL 文字列変数を次のように初期化します。

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

次に、必要な接続プールを追跡する urllib3 の PoolManager を使用します。

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

ファイルの作成:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

最後に、GET リクエストを送信して URL を取得し、ファイルを開きます。次に、ファイルへの応答を書き込みます:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

10. Boto3 を使用して S3 からファイルをダウンロードする

Amazon S3 からファイルをダウンロードするには、Python boto3 を使用できます。モジュール。

開始する前に、pip:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

を使用して awscli モジュールをインストールする必要があります。

AWS 構成の場合は、次のコマンドを実行します:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

次に、次のように詳細を入力します:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

To Amazon S3 からファイルをダウンロードするには、boto3 と botocore をインポートする必要があります。 Boto3 は、Python が Amazon ウェブ サービス (S3 など) にアクセスできるようにする Amazon SDK です。 Botocore は、アマゾン ウェブ サービスと対話するためのコマンド ライン サービスを提供します。

Botocore には awscli が付属しています。 boto3 をインストールするには、次のコマンドを実行します:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

次に、これら 2 つのモジュールをインポートします:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

Amazon からダウンロードする場合ファイルの場合、次の 3 つのパラメータが必要です:

  • バケット名
  • ダウンロードする必要があるファイルの名前
  • ダウンロード後のファイルの名前

変数の初期化:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

次に、セッションのリソースを使用するために変数を初期化します。これを行うには、boto3 の resource() メソッドを呼び出して、サービス (s3:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

) を渡します。最後に、download_file メソッドを使用してファイルをダウンロードし、渡します。変数:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

11. asyncio の使用

asyncio モジュールは主にシステム イベントを処理するために使用されます。これは、イベントの発生を待機してからそのイベントに反応するイベント ループを回避します。その反応として、別の関数を呼び出すことができます。この処理をイベント処理と呼びます。 asyncio モジュールは、イベント処理にコルーチンを使用します。

asyncio イベント処理とコルーチン機能を使用するには、asyncio モジュールをインポートします:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

次に、asyncio コルーチン メソッドを次のように定義します:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

キーワード async は、これがネイティブの asyncio コルーチンであることを示します。コルーチン内には、特定の値を返す await キーワードがあります。 return キーワードを使用することもできます。

ここで、コルーチンを使用して Web サイトからファイルをダウンロードするコードを作成しましょう:

Python を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度です

このコードでは、非同期コルーチン関数を作成します。これにより、ファイルがダウンロードされ、メッセージが返されます。

次に、別の非同期コルーチンを使用して main_func を呼び出します。このコルーチンは URL を待機し、すべての URL をキューに入れます。 asyncio の wait 関数は、コルーチンが完了するまで待機します。

コルーチンを開始するには、asyncio の get_event_loop() メソッドを使用してコルーチンをイベント ループに配置する必要があります。最後に、asyncio の run_until_complete() メソッドを使用してイベント ループを実行します。

Python を使用してファイルをダウンロードするのは楽しいです。このチュートリアルがお役に立てば幸いです!

以上がPython を使用してダウンロードされた 11 の姿勢。それぞれ前回よりも高度ですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は51CTO.COMで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Pythonを使用した科学コンピューティングでアレイはどのように使用されていますか?Pythonを使用した科学コンピューティングでアレイはどのように使用されていますか?Apr 25, 2025 am 12:28 AM

Arraysinpython、特にvianumpy、arecrucialinscientificComputing fortheirefficienty andversitility.1)彼らは、fornumericaloperations、data analysis、andmachinelearning.2)numpy'simplementation incensuresfasteroperationsthanpasteroperations.3)arayableminablecickick

同じシステムで異なるPythonバージョンをどのように処理しますか?同じシステムで異なるPythonバージョンをどのように処理しますか?Apr 25, 2025 am 12:24 AM

Pyenv、Venv、およびAnacondaを使用して、さまざまなPythonバージョンを管理できます。 1)Pyenvを使用して、複数のPythonバージョンを管理します。Pyenvをインストールし、グローバルバージョンとローカルバージョンを設定します。 2)VENVを使用して仮想環境を作成して、プロジェクトの依存関係を分離します。 3)Anacondaを使用して、データサイエンスプロジェクトでPythonバージョンを管理します。 4)システムレベルのタスク用にシステムPythonを保持します。これらのツールと戦略を通じて、Pythonのさまざまなバージョンを効果的に管理して、プロジェクトのスムーズな実行を確保できます。

標準のPythonアレイでnumpyアレイを使用することの利点は何ですか?標準のPythonアレイでnumpyアレイを使用することの利点は何ですか?Apr 25, 2025 am 12:21 AM

numpyarrayshaveveraladvantages-averstandardpythonarrays:1)thealmuchfasterduetocベースのインプレンテーション、2)アレモレメモリ効率、特にlargedatasets、および3)それらは、拡散化された、構造化された形成術科療法、

アレイの均質な性質はパフォーマンスにどのように影響しますか?アレイの均質な性質はパフォーマンスにどのように影響しますか?Apr 25, 2025 am 12:13 AM

パフォーマンスに対する配列の均一性の影響は二重です。1)均一性により、コンパイラはメモリアクセスを最適化し、パフォーマンスを改善できます。 2)しかし、タイプの多様性を制限し、それが非効率につながる可能性があります。要するに、適切なデータ構造を選択することが重要です。

実行可能なPythonスクリプトを作成するためのベストプラクティスは何ですか?実行可能なPythonスクリプトを作成するためのベストプラクティスは何ですか?Apr 25, 2025 am 12:11 AM

craftexecutablepythonscripts、次のようになります

numpyアレイは、アレイモジュールを使用して作成された配列とどのように異なりますか?numpyアレイは、アレイモジュールを使用して作成された配列とどのように異なりますか?Apr 24, 2025 pm 03:53 PM

numpyarraysarasarebetterfornumeroperations andmulti-dimensionaldata、whilethearraymoduleissuitable forbasic、1)numpyexcelsinperformance and forlargedatasentassandcomplexoperations.2)thearraymuremememory-effictientivearientfa

Numpyアレイの使用は、Pythonで配列モジュール配列の使用と比較してどのように比較されますか?Numpyアレイの使用は、Pythonで配列モジュール配列の使用と比較してどのように比較されますか?Apr 24, 2025 pm 03:49 PM

NumPyArraySareBetterforHeavyNumericalComputing、whilethearrayarayismoreSuitableformemory-constrainedprojectswithsimpledatatypes.1)numpyarraysofferarays andatiledance andpeperancedatasandatassandcomplexoperations.2)thearraymoduleisuleiseightweightandmemememe-ef

CTypesモジュールは、Pythonの配列にどのように関連していますか?CTypesモジュールは、Pythonの配列にどのように関連していますか?Apr 24, 2025 pm 03:45 PM

ctypesallowsinging andmanipulatingc-stylearraysinpython.1)usectypestointerfacewithclibrariesforperformance.2)createc-stylearraysfornumericalcomputations.3)passarraystocfunctions foreffientientoperations.how、how、becuutiousmorymanagemation、performanceo

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター