ホームページ  >  記事  >  バックエンド開発  >  Python 3 を使用して Web からファイルをダウンロードするにはどうすればよいですか?

Python 3 を使用して Web からファイルをダウンロードするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-04 03:04:01953ブラウズ

How to Download Files from the Web Using Python 3?

Python 3 で Web からファイルをダウンロードする

JAR ファイルをダウンロードするために JAD ファイルから URL を抽出すると、URL が文字列として保存されているためにエラーが発生しますタイプ。この問題を解決するために、Python 3 で文字列 URL を持つファイルをダウンロードする方法を検討します。

Web ページのコンテンツの取得:

Web ページのコンテンツを取得するには変数の場合、urllib.request.urlopen を使用して応答を読み取ることができます:

<code class="python">import urllib.request

url = 'http://example.com/'
response = urllib.request.urlopen(url)
data = response.read()      # bytes object
text = data.decode('utf-8') # str object</code>

ファイルのダウンロードと保存:

簡単にファイルをダウンロードして保存するには、urllib .request.urlretrieve が最適です:

<code class="python">import urllib.request

# Download and save file from url to file_name
urllib.request.urlretrieve(url, file_name)</code>

または、ローカル パスと応答ヘッダーを取得できます:

<code class="python">file_name, headers = urllib.request.urlretrieve(url)</code>

urlopen と shutil.copyfileobj を使用した最適な解決策:

推奨されるアプローチは、urllib.request.urlopen を利用してファイルのような HTTP 応答オブジェクトを取得し、shutil.copyfileobj:

<code class="python">import urllib.request
import shutil

# Download and save file from url to file_name
with urllib.request.urlopen(url) as response, open(file_name, 'wb') as out_file:
    shutil.copyfileobj(response, out_file)</code>

小さいファイルの代替アプローチ:

小さいファイルの場合、ダウンロード全体をバイト オブジェクトに保存してファイルに書き込むことができます:

<code class="python">import urllib.request

# Download and save file from url to file_name
with urllib.request.urlopen(url) as response, open(file_name, 'wb') as out_file:
    data = response.read() # bytes object
    out_file.write(data)</code>

圧縮データをその場で抽出する:

HTTP サーバーがランダム ファイル アクセスをサポートしている場合は、圧縮データをその場で抽出することもできます:

以上がPython 3 を使用して Web からファイルをダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。