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 サイトの他の関連記事を参照してください。